Code cleanup

- Add more information to thrown error messages
- Change one-line throws and returns to the next line, so it's easier to
  set breakpoints on throw Lines
- Add more event emissions to Viewport
0.0.1-24