Propagate semantic names

@tcolar I believe we are passing ftests on this branch.

This is a significant change to all workflows.  @nordsieck @mcellis33 @jeffdh 

This changes the container names to be the "same" as the names in the pickett.json.  However, there are a couple of things to be aware of:

1) the names default to being prefixed with "username" so instead of "mesa.plumedb" you get a container called "iansmith.plumedb.0".  The number is the "instance number" even if there is only one instance.

2) drop is now the inverse of run, taking the same parameters.

3) Both drop and run name have a "-rootname" value that lets you control the root name (before the dot) that is used. This is propagated all the way through to etcd keys and so forth, so you can run separate "instances" of the same topology by using this flag.

4) ftest has been modified (see the branch with name propagate_semantic_names) to use the root name "ftest".

5) This change means that you will probably need to be more aggressive than before about using "pickett drop" to clean up anything laying around.  In short, this is because we *reuse* container names (like iansmith.plumedb.0) and docker will complain even if there is a stopped container with that name.