Continued code reorganization

Moved install function to DesignCenter::Repository
Moved load_sketch (as load) to DesignCenter::Sketch
Moved JSON-handling functions to DesignCenter::JSON
Improved search_internal to provide more meaningful error messages.
Renamed Repository::list to Repository::search
Added DesignCenter::System

This class is used to represent the local system, including
installed sketches.
Added "list" command.
Added --expert option

This option enables the old-style cf-sketch functionality, so that
it's still available for those who want it.
Added "list activations" command.
Fixed search & list commands

Made them work properly from --expert mode.
Fixed completion when first command variant is marked as hidden.
Moved display of list command to Parser::command_list.
Added activation info to result of DesignCenter::System::list, stored as the _activations field in each sketch record.
Clear cache of local repo after install, so next "list" command shows the updated content.
New format for list command

The new format shows sketches and whether they are configured
or unconfigured. List now has a -v option that shows activation
details for configured sketches.
Fixed activation count in list command.
DesignCenter::System::list now returns DesignCenter::Sketch objects.
Configure/activate with file

Moved activate() to DesignCenter::Sketch::activate_with_file(),
and added first version of the "configure" command, which for now
can only receive a JSON file with the parameters.
Improved printed messages

Added a startup message.
Improved messages from list and search commands.
Wording and messaging changes.

Improved error messages printed by configuration to make them less
verbose.
Changed "activate" to "configure", activate will be a separate
operation.
Fixed logic error.
Identify libraries in list output.