Mike errors

Added custom error types for us to use in the backend

<!---
@huboard:{"order":1.875}
-->

What else could this file export? If nothing else, couldn't we consider skipping the extra step? It feels weird having to write `ErrorCodes.codes.` to access this.