Using wrappers for commands and events.
Using Scaldi to cleanup dependency injection.
Services now use wrapped commands.
All tests pass again.
Server and client fixes after testing.
Server: added tests that check for specimen groups in use.
Client: cleaned up code related to editing annotation types.
Client: fix for study panels open / closed state.

Remember the last viewed study. This way if the user reloads the page, the panels are not initialized to all open again.
Client: in use specimen groups fixes.

If speicmeng group is in use, it cannot be updated or removed. An explanation is
displayed in modal and the action is not allowed.
Client: checks for annotation types in use.

If an annotation type is in use, it cannot be updated or removed. The checks were
added for collection event, specimen link, and participant annotation types.
minor code cleanup
Server: cleaned up events.

Events do not need a timestamp anymore since the timestamp was moved to WrappedEvent.
Using wrappers for commands and events.