Early Result implementation, error improvements needed

After much thought, I decided that it would be better to use a Result
interface than the error interface. There's stil some work I need to do
around the InternalError code, I'm thinking it will be a special case
that's passed to the OnError handler. Also I need to write a default
OnError handler.