Implement `defprotocol`, `deftype` & `defrecord`.
Implement `satisfies?`.
Make `(^:block do s1 s2)` compile to JS block.
Fix analyzer bug that would nest previous statements onto next ones.
Implement extend-type and extend-protocol
Add `nil` and `default` type support for protocols.
Fix issue with loosing ns info in `env` passed to subsequent forms.
Update identifier translator to translate private methods like -foo to _foo.
Fix defprotocol for forms without methods.
Implement aset and alength macros.
Merge branch 'master' into experiment/protocols
If `ns` isn't present make it's 'user.wisp.
Write `defprotocol` `deftype` tests.
Write examples for protocols.
Bump version to 0.10.0
Fix typo.
Fix generated output for protocol definitions.
Protocols defn & methods may be private.
Protocols no longer extend built-ins.
Fix some edge cases.