Renamed add to extend. Now deletes duplicate elements.
Allow the current subcommand name to be printed in the usage string.
Massive refactoring of handling subcommands and formatting.
Remove ability to remove options for better reference invalidation
rules.

Add newline after printing the description. Add new_subcommand
member function that returns a reference to the inserted subcommand.
Add is_active, get, and get_or member functions for the subcommand.

Allow retrieving the active subcommand through the parser object.
Add back error checked parse member function.

Remove the implementation defined name of -- and instead use an
empty one. Also add the missing get, get_or and is_active member
functions.