Add TreeStore and ListStore

This fixes #60 by wrapping TreeStore and ListStore, so TreeViews can display content. The idea is that it should work like this:

```rust
let mut project_tree = gtk::TreeView::new().unwrap();
let column_types = vec![glib::ffi::g_type_string];
let tree_store = gtk::TreeStore::new(column_types).unwrap();
let model = tree_store.get_model().unwrap();
project_tree.set_model(&model);
```

Here's what I think still needs to be done:
* ~~Complete all the TreeStore/ListStore functions~~
* ~~Create an enum that maps to the various [GType constants](https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#G-TYPE-INVALID:CAPS)~~
* ~~TreeView's getter functions seem to have the "get_" omitted, which seems inconsistent with other widgets like IconView, so that should probably be fixed~~
Maybe you can use a slice directly here `&[Gtype]`, or parametrize the function with a [AsSlice](http://doc.rust-lang.org/std/slice/trait.AsSlice.html) trait: 
```rust
fn new<T: AsSlice<Gtype>>(column_type: T);
```