Implement client_only_attributes (addresses #70)

# Why?
See issue #70.

# What changed?
- change behavior of `Document.attributes` to create or add to existing
  attributes
- add `Document.client_only_attributes` which adds to `attributes` but also tags
  these attribute in such a way as to be not be serialized by
  `#saveable_attributes`
- refactor `#saveable_attributes`
- update tests

# What now?
I'd really like feedback.  Do you think this is a good way to go?  If it's confusing what this patch accomplishes, I'll be happy to update the PR with more documentation and code examples.
Surrounding space missing in default value assignment.