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?