Observers and Browser Tests

Plugins Decoupled.
New plugins are detected on startup and added to database if necessary.
Plugins are all activated at startup to listen to its designated package.
The model's find method now returns an Option of an entity, this should be intuitive in the case we are trying to find something where nothing exists. Also allows our models and forms to have Optional attributes.

Starting to test functionality through Play's wrapper of selenium/fluentlenium.
Should discuss about usern ames and package names being unique.
~~TODO: Add tests~~
~~TODO: Not not choose what plugins to save to database, instead save all plugins to database on startup~~
~~TODO: ^^ Will solve issues of storing multiple of same plugins and editing the plugin name etc.~~
TODO: Allow plugins to be used for multiple packages <- UI Dependent
~~TODO: Remove the ability to manually add plugins to databse~~
TODO: Add contraint to ensure unique names
~~TODO: Merge with master to ensure correctness~~
~~TODO: Ensure users can be deleted, test is failing~~