Version 2.0

Big refactor, turned out basically the same.

  - No more global error states (yay!)
  - basic type checking (`:number`, `:string`, `:boolean`)
  - full feature parity with 1.0