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`.