Initial commit

Porting all the code from Qiita and extending the tests.
I don't feel *too* strongly about this, but maybe this should be a GD-specific exception?  That way if/when this module is being used as part of a larger project (which is the intent), it will be easy to understand exactly what is causing the error. Not 100% necessary, though, since the words "glowing-dangerzone" will probably appear somewhere in the traceback