change error types so they are distinguishable

The current error types are not distinguishable; they are reimplemented according to https://code.google.com/p/go-wiki/wiki/Errors .