Refactored the command line config system and other aspects of config....
Refactored the command line config system and other aspects of config.
* Removed ``NoConfigDefault`` from our config logic entirely. It turns out
that argparse has a nice ``argparse.SUPPRESS`` object that handles this
nicely (r1283, r1284).
* Completely cleared the previous config when :meth:`load_config` is called
to allow it to be called more than once.
* Added some additional tests and docs for the config system.
* Removed the ``override_config`` and ``constructor_config`` config stages
from :class:`~IPython.core.application.Applications` (r1293).
* Completely refactored the command line config parser classes. We are now
using a more object oriented design that allows for fine grained
inheritance and good encapsulation.