Rework operand conversion

This makes the "idx()" and "dir()" functions look like the "lit()"
function.  There's two changes here:

* These functions are virtual (and abstract) members of operand

* These functions return a tagged union with False/Unit

The general idea here is that rather than having to do something like
a RTTI cast to figure out what sort of operand something is, you just
try to parse it as a literal (or whatever).  This was the way it was
originally designed.

Apparently I forgot about that though, which is why this also removes
the net() function...
Remove tile_address::name(), provide name_{with,without}_space

It turns out that Jonathan's tools aren't even internally consistant
about how they name tiles.  This provides both options, as they have
to be used at different times in order to make my stuff diff.
We're now using bundles, so make the objdump example reflect that

This is just a variable naming change.
Wrap every bundle in {} in --as format

I used to only wrap bundles with more than a single instruction.  This
now wraps all bundles in {}, which makes parsing them slightly easier.
Allow for tiles that get instructions added to them

As part of the assembler I'm going to be creating a tile and then
adding a bunch of instructions to it.  This required some methods to
allow me to change the instructions inside a tile.
Fix an off-by-one error in DIMS numbering

I forgot we have that offset for the host tile.
Implement object::write_hex_file()

It turns out I hadn't actually implemeted this before.  This also
requires adding bundle::hex_string(), to convert to hex.  Note that
this currently isn't implemented all that well, but I wanted to get it
in kind of early.
Implement to_opcode(std::string)

Inside the assembler I sometimes need to convert in this direction.
Add instruction(vector of operands)

This is actually a bit tricky because internally we represent
instructions as a non-vector.  Additionally, because some opcodes
don't have destination registers this doesn't line up nicely.

I think this works OK, but I haven't given it much testing.
Work around a bug of some sort

I'v just forgotten what it was!
Implement hurricane-as

This can currently only assemble LIT instructions, but that's just
because it's not done.