Clean unused kernels and ramdisks from image cache

Fixes bug #1132138

Only unused disk images are currently cleaned up by the image cache
manager but it seems logical to clean up unused kernels and ramdisks
too.

Achieve that by writing kernels and ramdisks to disk using the sha1
sum of their ID as the filename. This is the same scheme as used for
disk image filenames and causes the image cache manager to consider
them for cleanup. We also make the cache manager take note of in use
kernels and ramdisks when iterating over the list of instances.

A nasty upgrade concern is that if we immediately switch to writing
kernels to disk using this scheme then, where shared storage is used,
we can have older image cache managers on remote compute nodes cleaning
up kernels because they appear unused. To mitigate that, turn off this
behaviour by default and allow it to be enabled using a new config
option. This option will be removed in future and the behaviour enabled
by default.

DocImpact: new remove_unused_kernels option

Change-Id: I56bba9fa6596601104498e262c2e657f0eae2fa0
Readd run_tests.sh --debug option.

Testr doesn't directly support running tests with pdb so the --debug
option was pulled from run_tests.sh during the testr switch. Add the
flag back into run_tests.sh and have it run tests with testtools.run
which allows users to import pdb in tests then run them without
interference from testr.

Example usage:
  # First edit test file to import pdb.
  run_tests.sh -d path.to.test

If the test is not given on the command line all tests will be run.

Change-Id: I4afca9ca997ccb6c575b714b778a9db8306c7891
Imported Translations from Transifex

Change-Id: I797e5f89c636b9619d5cb1862316f3c33d04b606
Merge "Clean unused kernels and ramdisks from image cache"
Merge "Imported Translations from Transifex"
Merge "Readd run_tests.sh --debug option."