Separation of virtualenv.
Notably: moved third parties to components and renamed a few stuff as base. Some more genuine changes. Not stable yet.
Renamed dictionary to KeyValueStore. Better tests as well.
Adding a disabled flag for components that people don't want enabled.
Clarified the rules for resolving keys in the KeyValueStore. Added bunch of tests to cover all rules.
Now manages dependencies a bit better. Components need to declare _start() and _stop() which are ran after all dependencies have started/stopped.

Server now checks that 'port' is set and that it's not in use.  Habitat.port() verifies that the port returned is not in use either.
Unnamed components use an id and the classname for its name. Also, servers can now have a wait parameter that waits for the output.
If specify a stdout/err function and returns true, still output the out/err to logs.
Moved dependency graph stuff to util, added a depgraph command to list the dependencies of your components, every components now have a _env which is None by default, removed parent of the environment class (using env now). Django waits for the CONTROL-C string in the output. And more.