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.
Redundant curly braces around a hash parameter.<br>Line is too long. [91/80]<br>Space inside { missing.<br>Space inside } missing.