Improve command help output

Fix: The help output that is printed when the start arguments are invalid now uses the name of the actual jar that was invoked.
[Breaking] Resolve package dependency issues

Fix: Reduce the amount of dependency cycles between packages.
Remove: Unnecessary dependencies that were caused by javadoc links.
Profile name can be changed

Add: The name of a profile can now be changed.
Decrease default random pool size to 10

Add: 1000 random objects is clearly overkill, so the new default size of a random pool for a simulation is 10.
[Breaking] Resolve more package dependency issues

Fix: Reduce the amount of dependency cycles between packages.
Fix: Generally reduce the amount of dependencies between packages.
Use TypeUtils.isInstance instead of Class.isAssignableFrom

Fix: Use TypeUtils.isInstance for type checks between objects and classes instead of Class.isAssignableFrom for better readability.
Replace Registry with GlobalStorage

Add: GlobalStorage is a flexible class that provides storage for all kinds of global values.
Add ServiceRegistry for DI of services (GraphicsManager etc.)

Add: The ServiceRegistry class takes singleton services (like the GraphicsManager) and allows them to be "manually" injected into classes that use them. In order to provide more flexibility, those services are now represented by interfaces while the exact implementations remain unknown.
Add: In order to provide a more flexible ProfileManager service, the ProfileSerializer throws a single "ProfileSerializationException" instead of multiple ones like IOException or JAXBException.
ResourceStore is static utility instead of singleton

Add: The ResourceStore class now provides static utility methods instead of providing a singleton instance of the class.
Fix javadoc and comment issues

Fix: Some javadoc issues; also generally overhaul the javadoc in some places.
Fix: Add the missing license header to GlobalStorage.