Template the flo class

Hopefully what I've now got consists of a reasonable public inferface
for libflo.  The idea is that the flo class is templated, so if you
need to extend the parser to attach specific bits of data to each
operation or node you can do so by subclassing the node/operation
class and then passing that as a template to the flo class.

This is super useful for the LLVM backend, which needs to tag every
operation with an internal bookkeeping name, for example.