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~~
`bool` is not ffi safe i think, use a gboolean instead, and return the corresponding rust boolean.