3.0 exception

-  Merged `Exception` and `BaseException` into single class

- Refactored `ExceptionRender`.
- All template selection and error code coercion code has been removed from constructor and moved into protected methods called directly from `render()`.
- The feature which allowed having a method for each exception type promoted non DRY code. I didn't think it was overly useful anyway. Instead you can now override the `render()` or it's helper methods as required if you want finer control over the rendering.
- Earlier with debug off for framework exceptions there was method, template and code values juggling which looked fugly. Now with debug off if there is a non `HttpException` generated simply a new `NotFoundException` or `InternalErrorException` instance is created to avoid all the jugglery.