Initial commit of prognosticator

This basically moves the code wholesale out of the internal library, but
still needs tests and documentation