LXC Refactor

**This may need further work before it is ready to be merged. See below.**

This pull request refactors LXC support, bringing it up-to-date with Salt's
coding style guidelines, as well as adding several features functions. It also
adds an initial draft of a tutorial to the docs.

There is one major change that I made which may be modified before this is
merged. I modified the way that profiles work (while leaving legacy behavior
backwards-compatible) so that they weren't all configured under a single key.
This allows a single profile to be overridden without requiring all profiles to
be re-defined. During a conversation with @thatch45 we discussed adding an
option to the config.get remote execution function that merges dictionaries, a
feature which would make it unnecessary to configure profiles under individual
top-level keys. We need to further discuss this before we move forward with
merging.

**To check out this pull request:**

1. Check out the pull request locally (see [steps 1-5 here](https://help.github.com/articles/checking-out-pull-requests-locally/) for instructions). Where the instructions reference ``origin``, replace that with the name of the git remote you have created for upstream. If you don't have such a remote, run ``git remote add upstream https://github.com/saltstack/salt.git``, and use ``upstream`` instead of ``origin`` when fetching in step 4.
2. Install using ``setup.py install`` or ``pip install --editable=/path/to/git/checkout``.