Convert complex objects for storage in Firebase

This adds a `toObject` method to the `attrs` object, which allows you to have properties of a local model not be persisted to Firebase. Views, methods, and other properties that are nice to manage as attributes don't always belong in a database.

Also, the model emits an `'update'` event when it receives an update from Firebase. This might be confusing considering the `update` method emits a `'save'` event, but I can't think of a better event name.

These changes might not be in line with what you envision for this component - I think the part about having attributes that are not in the database might be a matter of opinion.