Introduce attr_extras

* Reduces boilerplate for simple Ruby objects
* Encourages good initializer practices (just initialize)
* Makes it easy to make immutable value objects

http://rubydoc.info/gems/attr_extras
Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.