Configurator and Client Refactor

This pull request is just a large refactor. I am not sure if this is complete, but I thought I would open it up to comment before I have to go to sleep for a couple hours.

I pulled out lower-level code from the Apache Configurator into a separate Apache Parser.  Apache Parser is a member of ApacheConfigurator.  I would like to write separate classes for each challenge type, but that will come in the next PR.

Client.py has been separated into its particular functions. (obtain certificates, deploy_cert, optimize).  I have pulled out all of the setup code (dialogs) into functions that can be accessed by the main script before beginning.  The main script now have a naive sense of picking the proper Authenticator and Installer (two new interfaces that represent the previous configurator's functionality).  

Separating this into two parts allow things like the Stand-alone configurator to be easily used by itself and also allows the possibility of any other TLS service to write an installer in order to install the cert from something like the stand-alone (null) configurator.

Code works and it is PEP8 compliant.  Pylint warnings are pretty low.

I need some rest, but I will review pull requests here in a couple of hours and get everything merged appropriately.
We are working on updating the command-line-interface.  I will incorporate the changes before the merge.  This is meant to be the fall back mechanism to allow the system to determine what systems are available and provide a level of assurance that the proper steps are taken.  Right now, the Apache configurator throws that exception upon initialization if it is unable to find an apache configuration.  A more appropriate error should be thrown... but this function should also be extended (Possibilities: Is it an active server?  What ports is it listening on?  Are there any domains that are under it?  Is there a better option on the system?)  We will have more options other than the ApacheConfigurator very soon.  This will address #65.