This removes all obvious remaining panics (still need to check if there are other
operations that can panic such as slicing) and reforms the error interface as
outlined in #44
It now forces all operations that fail through a central interface which makes it easier
to debug. I wanted to also add a backtrace to the errors but that's overkill since they
are only needed for internal debugging. I found that adding panics temporarily to the
fail method is a good way to debug this thing.
This removes all obvious remaining panics (still need to check if there are other operations that can panic such as slicing) and reforms the error interface as outlined in #44
It now forces all operations that fail through a central interface which makes it easier to debug. I wanted to also add a backtrace to the errors but that's overkill since they are only needed for internal debugging. I found that adding panics temporarily to the fail method is a good way to debug this thing.