Merge 0.9.0 Feature Branch into Master

Fixes #207.

Lots of changes here. Best to use #207 and the Milestone 0.9.0 for comparison.