Cleanup

* Mark fields final
* Remove manual boxing/unboxing operations
* Use `StringBuilder` instead of `StringBuffer`
* Use enhanced for loops where applicable
* Organize imports
* Add missing `@Override` annotations
* Always `throw` the result of `DynamicError.throw_type_error()` to make code flow clear