Add umbrella ARM toolchain package.

The ARM toolchain package includes gcc and binutils. (Will include
GDB and QEMU in the future.)

Support for umbrella packages added to the xyz.py tool. An
umbrella package simply packages up all the package's
deps into a single package.

Additionally, 'rules' can now be variant based on a config.
Specifically, 'target' is no longer special, but rather specified
as a configuration variant for binutils and gcc.

Configuration is specified via comma-separate key:value pairs
on the command line. E.g: --config=target:arm-none-eabi

Variant configuration can be specified as part of the deps. (Rather
than just a string, make it a tuple with a config dictionary as
the second item.)

get_deps() is now used to get the deps, passing in the config. This
allows deps to be variant based on the config.