Rewrote error reporting

Since Error is now extending Result we can directly return the Error
object
BugFixes

Fixed some Error reporting bugs that slipped the net in the past commit
Merge branch 'Error-reporting'