Merge pull request #13 from jsumners/develop

Oops. Logging was copied to the wrong place.
Merge pull request #14 from jsumners/attrs_rework

Adds two new features: optional/required attributes and attribute mappin...