separate out errors into their own file, and make them slightly more helpful

fixes #9
Please use it since it is built-in and The Ruby Way and so-forth.