configuration approach

if an option not found at current level, backtrack levels until found.
if still not found, it may be an option that only applies when the level
changes, so stash it.
when the config level changes, replay the stash and only then error out if not
found.

could make it keep stashed options until we've completely finished, but that
might actually be more confusing than helpful.  this gives us the ability to,
say, specify cart options in an arbitrary order.  that's enough.  and anyway,
with this system in place we may well reuse option names so don't want an
option down one leg of the hierarchy ending up being accepted down another!

-cart mycart
  -rom0 filename.rom		# rom0 wouldn't be accepted for most carts
  -type cocosdc			# but now it will


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Raw binary loading

First need a consistent idea of physical addressing.
e.g. SAMx8 always gets $000000+

Then need an option, e.g.

-load-ram [addrspec,]filename

addrspec could just be an initial load address, but maybe we could
make it do fancy stuff like:

[FILE-OFFSET:]ADDRESS[/LENGTH]

e.g. "16384:0/8192,filename.ram" would load 8K from 16K into the file
to address 0.

or we could do this more explicitly:

-load-ram filename
 -load-ram-section 16384:0/8192
 -load-ram-section 32768:16384/8192


