Shared global and per-region definitions

Multiple paths can now be configured as search paths, enabling global or
per-region settings to be shared across instance definitions.

Instance definitions are sequentially loaded from search paths and
merged together. For the time being merging is 'dumb' where settings
picked up later take precedence over earlier ones.

This change also enables files containing command-line options to be
processed by prefixing their names with '@', which is useful when
repeatedly passing multiple --instance-path options.
"Pretty" metavar options for the command-line, rewrap code
Allow symbolic names in place of IDs

Combined with instance search paths and '~default~' definitions, this
enables global and regional settings to be maintained outside of
individual instance definitions.
Avoid infinite loops

Now using iteration, instead of recursion, when resolving symbol names.
Visited values are tracked to detect (break and ignore) loops.
Use python string formatting

This is currently enabled in symbolic names and in --instance-path
options.
Transform user-data arrays into MIME/Multipart
Quick and dirty building of user-data from file