Texas 0.1.4

Crate to generate latex documents
Documentation
# Texas

## Purpose

This crate does not, in any way, even remotely cover the vast variety of things you can do with latex. Instead, it attempts to provide a friendly API
for some of the most basic functions. 

It's also my first foray into the open-source world, so constructive criticism is welcome and appreciated.

## Basics
- The primary type is `Document`, which you populate per your whims and fancies. This can be written to a file like so: 

```
let mut q = File::create("file.tex")?;
let doc = Document::new(DocumentClass::new("book"));
write!(q, "{}", doc.to_string())?
```
- The document can be filled with `Component`s, `Package`s and `Command`s.
- `Component` is an enum, with each variant containing a separate struct. If a component `impl`s the `Populate` trait, you can fill it with more `Component`s, then install it in the `Document` like so:

```
let mut p1 = Part::new("one");
p1.attach(Component::Chapter(Chapter::new("c1")))?
    .attach(Component::Chapter(Chapter::new("c2")))?;

doc.new_component(Component::Part(p1));
```
- `Command`s can be created and installed like so: 
```
doc.new_command(Command::new("brak", 1, "\\ensuremath{\\left(#1\\right)}"));
```
- Will add ability to generate stuff like `ensuremath` from code eventually.
- Packages can be created and installed like so: 
```
let mut p1 = Package::new("parskip");
p1.add_option("parfill");
doc.new_package(p1);
```
- Also has trait `Opt`, which allows for adding options to a command (like `usepackage` and `documentclass`, for now).