Normalize the scheduler weights.

The weighter was usint the raw values instead of normalizing them.
If somebody wants to implement any weighter different than RAM we
have to ensure that all weights are normalized before doing anything
with them (that is, before applying the multiplier and before we sum
the calculated weight to the object). In this change all the weights
are normalized to 1, so that the final weight for a host will be:

    weight = w1_multiplier * norm_w1 + w2_multiplier * norm_w2 + ...

The RAM weighter relied on setting the multiplier to -1 so as to make a
reverse ordering and this is no longer true, therefore another option
'ram_weight_inverse' has been added.

DocImpact

Change-Id: I81bf90898d3cb81541f4390596823cc00106eb20
Add chached images reporting for compute nodes.

This patch adds support on the compute nodes to report back to
the scheduler the images thay they have currently on disk.

Partially implements: blueprint nova-image-cache-management-2

Change-Id: I3a0b14ea5e5e518076b7d68b991d692668bf5320
Added weighter based on image cache

Change-Id: I3354c44b321ce8f4fd0391cbf03ce5aa33d11f32
Use capabilities in filter

Change-Id: I9c0b544107dab8db58da9448d905efc7b3e1c7fa