Make slow tasks non-blocking during initialisation

The tomcat doesn't start until the initialisation for both the reader
and processor complete. This means that no user feedback can be given,
requests just timeout. This commit removes the blocking calls to some
key offenders and does them asynchronously, allowing the tomcat to
start.
Improvement to previous tomcat optimisation.

In the last commit, the ReservationService was started asynchronously,
with the BillingFileProcessor started at an arbitrary time later. This
commit makes the ReservationService synchronous again, but to allow the
tomcat to start quickly it's initialised inside the BilingFileProcessor
rather than the ProcessorConfig.
Stop 500 errors being masked by 404 responses.

When a 500 occurs, grails looks for the errors.gsp view. Because this
doesn't exists the response is returned as a 404, which causes much
confusion.
Changes to ice.js to check if the reader has some data
Changing ice error messages.

 * Handling 500s from the server.
 * Providing custom messages for each error.
Modified error handling and messages for iceStatus
Styling warning banner for partial data
Cosmetic JS improvements and fixed 500 handling
Tidy up and error page changes:

 * Remove layout chrome from error pages
 * Tidy up the URL mappings file
Pulling out UI error message for now.
Pulling out UI error message further
Merge pull request #57 from AWooldrige/start-tomcat-quicker

Allow the Tomcat to Start as Quick as Possible