Initial port

Moved over from ricegf/elven-fire: version 0.2.0.  In need of unit
testing and additional cleanup/documentation.