Many changes/updates

o configurer.py code now has better error checking on input.
  previously, most error checking took place on parsing, not writing.

o Model switching now longer uses the old:new syntax, but old new
  (notice the colon?).  The ":" existed because of the old xml parsing
  and because I didn't know how to use argparse as well.  Everywhere
  model switching is used now give old new separately.  i.e.:

  mml config --add switch old new
  mml run file.py --switch old new
  material = Material(model, options..., switch=(old, new))

o name and source_files now class attributes of a material not instance
  attributes.  This allows delaying instantiation of a model until it is
  really needed (as opposed to instantiating a model just to get a name
  or list of source files).

o removed all of the mml-... scripts.  Changed bin/mml to be a python
  script.  Usage is the same as before, i.e.

  mml run file.py ...
  mml build
  mml clean

  etc.

  The bin/mmd script was kept around for use in shebang lines.