Version 2.0.0 - full overhaul and rewrite

This is a major, breaking release. Support for older versions has been
dropped. Legacy 1.4.4 release code is available on github.