Code cleanup + Mongoid options pass-thru

Some code cleanup:
- Upgrade to Ruby 1.9 hash syntax
- Convert string-based class eval syntax to block based
- Cleanup/correct documentation

In addition, I've added a feature to pass-thru any valid keys in the options hash to Mongoid (`:default`, `:localize`, etc.), with the exception of `:type` which will always be `Array`.

As part of the Mongoid pass-thru, I've cleaned up the code to now use the Mongoid `:as` parameter to declared an aliased field, e.g. where the name of the database field is different than the method you use in Ruby. For example:

```ruby
taggable :a, as: artists
```

Will store the tags array in a database field 't', but all it's methods will use the name `artists`, e.g. `artists_string`, etc. This is consistent with the usage of the Mongoid `:as` parameter.