Improve Applet registration

Improve Applet registration

- Check if Applet#register() is called excatly once during applet
  registration
- Distinguish between loaded applets (GP modules) and applet instances

Other changes:
- Fix typos in code
- Make Simulator thread-safe
- Add javadoc