Functional tests & using REST exception mappers

I *THINK* I have this all correct, it was a lot of rebasing. PLEASE double check everything before merging.

This is a a very large refactor of the application layout. It now uses a multi-module approach to easily accommodate functional tests with arquillian. We could take this even further and create a war module and separate out the "api" module. I think "server" might be a better name for it actually. But we can talk about that later.