Feature/tower compatibility

This contains the following changes:

1. A new `SetProperty` class which is very similar to `ListProperty` but using sets. I think we need this to correctly represent DynamoDB.
2. Code in `_ReverseReferenceProperty.__get__` of botoweb/db/property.py that was specific to either `DynamoModel` or `coremodel.Model` is now instead refactored into methods named `match_reference_property` in those two classes. The idea is that all model classes should implement this to allow use of `_ReverseReferenceProperty`.
3. Some style changes in the three files I edited for the above changes. Mostly: strings changed from `""` to `''` quotes, used `key in dict_object` instead of `dict_object.has_key(key)`, used `x is None` instead of `x == None`.