Move supertype into class, expose setter, fix interface implements.

* Supertypes are only applicable to classes. Additionally, expose a single-use setter for providing a value.
* Interfaces use 'extends' instead of 'implements' for their implemented types.

Closes #74.