Added some code to change vlans via serial (powerconnect)

It isn't currently integrated into the rest of the codebase. Preliminary
interactive testing suggests that it works.
A bit more work on the dell serial driver

It's integrated with the rest of the haas, though hasn't really been
tested that way; the haas master doesn't have VT, and this is causing an
exception to be thrown before we get to invoking the driver.
Merge branch 'devel' into dell-serial
Basic config file parsing

The configuration takes the form of a json object. There's still work to
be done here; this is just the minimum needed change to load the config
from a file, rather than hardcoding it in the source.
Some more tweaking to the design of the config module.

options are now declared and validated in the modules to which they are
relevant. This is a step up, but the validation code is too verbose. I'm
not happy with this yet.
Merge branch 'devel' into config-file

Conflicts:
	haas_shell.py
Merge branch 'deploy-hotfix' into config-file
Switched over to using the ConfigParser module.

It's a bit more of a complete solution than just using the json module.
I'm punting on doing validation for now, but this should make it a bit
easier; the methods to get particular options already throw appropriate
exceptions.
Added some docstrings to haas.config
Merge branch 'config-file' into dell-serial
Dell driver now uses telnet.

This fixes #2, and resolves #16 by virtue of having redone the whole
thing.

It also fixes #12.
- pushing new api description into code so we can comment on-line
initial description our workflow
- testing
Added header
- got rid of workflow, moved into new push on moc-api
- put in link to apidesc from top level readme, so we can link to all our
  internal documentation on github
incremental commit, still working on this
- think I am happy to have this reviewed now
Refactored the way commands are parsed.

This has several advantages:
  - It fixes #22.
  - More generally, the shell is less sensitive to input variations; the
    old one would choke on leading/trailing whitespace, or extra
    whitespace. Now the parser just sees whitespace separated strings.
  - We no longer have to duplicate the names of command and their
    arguments; these are derived from the python function
    names/arguments. We can still override the name when we need to
    though.

We take advantage of the last point in a number of places, so the
command names have changed.

Still on the TODO list, the docstrings are no longer used, and contain
no useful information that isn't in the immediate vicinity. We could
should use this to provide a brief description of what the function does
- which we could even add to the help message.
Moved the file_names kludge back into the source

This time directly into haas_init.