Add support for custom exceptions

This PR brings support for custom exceptions, so that you can trigger custom exceptions in user land code, and map it to HTTP exception that can be interpreted by ZfrRest.

I'm wondering if we couldn't do another approach here, so that this listener is able to interpret ANY exceptions (even those not in the $exceptionMap). For those exception, it would create a generic ServerErrorException, with the message extracted from the exception. The reason is that we'd like to receive response from ZfrRest for any exception. If people forgot to add a specific exception they throw in ZfrRest, then this listener will do nothing. But I'm not sure.

ping @Ocramius