Mike errors

Added custom error types for us to use in the backend

<!---
@huboard:{"order":3.75,"milestone_order":9,"custom_state":"ready"}
-->

as discussed, it doesn't follow the convention, but the file system makes it really painful to change.