refactored to_dict to use a new to_dict_default_attrs attribute

Our implementation of ``to_dict`` has two behaviors:
* if you do not pass in a set of attributes, it automatically generates a list of all of the column values
* if you do pass in a set of attributes, it uses that

The problem is that I sometimes want to say, "all of the default values, plus this one other value".  There was no way to do that, so I refactored ``to_dict`` to use a class property.  So now I can say, e.g.

```python
return g.to_dict(Group.to_dict_default_values + ['attendees'])
```