Add autocompletion support for ncm-ncd.

For now, it autocompletes component names and the most usual options.
No esoteric stuff for now.
Document what is autocompleted.
Autocomplete the new-style command aliases
Prepare the work on hooks

We have to hook in NCD::ComponentProxyList::executeConfigComponents.
Start by writing enough tests to reduce the odds of introducing
regressions, by adding trivial placeholders for the hook executions and
by cleaning up the imports.
Implement the hook execution methods.

I don't know if the ComponentProxyList API has any other users, so I
don't dare to modify its API.

Instead, I do something ugly: I pass the hook name and timeouts within
the state of the object.

And since I cannot change the API anywhere, I have to implement the
appropriate setters for ncm-ncd.

If the reviewers think it's best to pass the hook parameters as
arguments to executeConfigureComponents, I am open to do so.
Add tests for the hook executions.
Add support for hooks to the ncm-ncd program.
Fix whitespace
Refactor the executeConfigComponents method.

After adding the hook handling it had become way too ugly.

It still needs some love, but at least we have gained some readability.
Receive the hooks as arguments to executeConfig...
Adapt ncm-ncd to passing hooks as parameters and not in the state
Document the hook parameters
Merge pull request #4 from piojo/autocomplete

Add autocompletion support for ncm-ncd.
Add post-dependencies to the test.
Document the executeConfigComponents and run_all_components methods.
Time hooks out after 5 minutes.
Merge pull request #8 from piojo/to-pr-hooks

Implement hooks for ncm-ncd
Fix missing parenthesis.

It broke ncm-ncd entirely!!