WL-2371 Created the API to allow signups to split.

This means if you have an existing signup you can accept parts of it and reject the rest.
Force the created date to be set in the DAO.

This way we can't create a signup without having the created date set initially. At the moment we don't prevent changes later on.
WL-2371 First implementation of split.

This creates a new signup and splits some of the components off from the first one.
Should be merged with 2 commits ago.

Pass current date to signup save.
Fix for equals being too strict.

This happens when hibernate enhances a class with CGLib and the getClass() calls aren't equal.
Also clear the session cache in the dao.

This makes it easier to fake another request in tests.
Switch to component presentation IDs.

These IDs are used in other calls in the API and the actual component IDs aren't really used that much.
Don't rely on arguments being mutable.

It's also considered rude to alter collections that are passed to you.
Actually have a test for the splitting of components.
And test that the arguments aren't modified.

The collections is actually immutable, but this makes it clearer that the arguments shouldn't be modified.
Correctly set the userId on PermissionExceptions.

userIds would get lost when including message and stack trace when creating a PermissionException.
Add missing full stop.
Check permissions when splitting a signup.
Check we get permission denied exceptions.

Check that when the wrong user attempts to split a signup we get an exception.
Added mapping in the web for split.

Also supported a quick test of this method.
Tooltip isn't in the sources so drop it.

This was generating 404s as the tooltip plugin isn't in the source code any more.
Refactored out the formatting of a component.

This allows it to be used when displaying the table and possibly when rendering a template.
WL-2371 Almost working popup for splitting.

This popup gets the data and displays the signup. It just needs to submit the content back to the server correctly and display a message indicating success/failure.
Throw nicer errors when the request is wrong.

A submission like this shouldn't really happen as the client side validation should catch it before we get here, but just to make it a little nicer we handle it.
Improved the language used in the template.