Explicitly have instruction bundles

This allows code that depends on the BFD to decouple itself from the
fact that DREAMER currently has an odd encoding scheme that's kind-of,
sort-of like a VLIW machine, but also not quite.  The idea is to
instead just treat any Hurricane code explicitly as VLIW from tha
start, which should make the simulator easier to paramaterize for this
behavior.
Huge changes to the hurricane_bfd::instruction API

So this changes pretty much everything.  There's a few major changes:

* An attempt at type safety.  This means the library handles things
  like saying "which operation is the select bit", and prevents you
  from asking for the select bit on an ADD (select is a MUX-only
  operation).

* A wrapper class for bundles, which abstracts awaya the parallel
  network operations as just a set of parallel operations.  Hopefully
  this will allow us to do things like SIMD and VLIW, in addition to
  making what we've currently got a bit less messy.

* A vastly simplified to_string method.

Hopefully these changes mean it's saner to write hurricane-sim?
Merged