moved all errors into single file for easier analysis

I wanted to change the error semantics of one of the
    errors but it was hard to find them as they
    were spread out over files.

I put all the errors in a single file so that
    reasoning about the error semantics of this
    package is easier.

cc @kriskowal @sh1mmer