[entropy.spm] create SpmPlugin.Error base exception class for all SPM issues
[entropy.spm] rework SpmPlugin.execute_package_phase API specifications

This makes phase execution and error handling more fine grained and on the
long run more robust as well.
Any exception raised by SPM is now considered fatal, while phase execution
failures (execution with error code != 0) are still considered non-fatal for now.
Release Entropy 174
Tagging Entropy version 174
[entropy.spm] PortagePlugin: environment_update() must return an execution status int
[entropy.client] Trigger: _trigger_env_update must return an integer
Release Entropy 175
Tagging Entropy version 175
[entropy.db] add listAllInjectedPackageIds
[entropy.qa] _get_missing_rdepends: if package does not need any library, return straight away
[entropy.qa] rewrite _get_missing_rdepends, now _get_missing_libraries

This commit dramatically improves the speed of _get_missing_libraries,
by using provided_libs metadata instead of content, removing any live
system dependencies (collect_linker_paths()), and improving method
readability.
[entropy.db] add listAllSystemPackageIds() method
[entropy.qa] _get_missing_libraries: cache the list of system packages
[entropy.qa] remove unwanted output message from test_missing_dependencies.

The message heavily depends on the context in where test_missing_dependencies
is executed.
[entropy.server] add QA test for library linking of injected packages

This test must pass before being able to push new packages and it ensures
that injected packages are kept consistent.
[eit.commands.test] if "eit test deps" reports missing deps, return != 0
[entropy.qa] split test_missing_dependencies, move ldd-based scan to warn_missing_dependencies
[entropy.qa] improve output of test_missing_dependencies()
[entropy.qa] fix typo in test_missing_dependencies()
[entropy.qa] test_missing_dependencies: cosmetic changes to the generated output