Add remove external lock files API in lockutils

when external lock are used, there will be a lock files which
is used for external file lock, it will not be removed and remain
forever. it will be a problem when tens of thousands of this kind
of actions. Add a API to allow other component to remove lock file
internal lock will be acquired before further action

Change-Id: I4d996b91bcc55becb0ebf4ec77ac80546f433ae9
Closes-Bug: 1256306
Normalize Scheduler Weights

Currently we are using the raw values directly from the available
weighers instead of normalizing them. This makes difficult to
properly use multipliers for establishing the relative importance
between two weighters (one big magnitude will shade a smaller one).

Changes introduced in this commit:
1) It introduces weight normalization so that we can apply multipliers
easily. All the weights for an object will be normalized between 0.0
and 1.0 before being sumed up, so that the final weight for a host
will be:

weight = w1_multiplier * norm(w1) + w2_multiplier * norm(w2) + ...

2) base_weight.BaseWeigher has been changed into an ABC so that we
enforce that all weighers have the expected methods.

3) base_weight.BaseWeigher.weigh_objects() does no longer sum up the
computer weighs to the object, but it rather returns a list that will
be then normalized and added to the existing weight by BaseWeightHandler.

4) Change _weight_multiplier() to weight_multiplier() as a public method

Port from I81bf90898d3cb81541f4390596823cc00106eb20
Related to bp nova-oslo-scheduler

Change-Id: I1b0c7a6e141eee699a191f8a59db90d063eb31ba
Implements part of bp normalize-scheduler-weights
Update oslo log messages with translation domains

Update the incubator code to use different domains for log
messages at different levels.

Update the import exceptions setting for hacking to allow
multiple functions to be imported from gettextutils on one
line.

bp log-messages-translation-domain

Change-Id: I6ce0f4a59438612ce74c46b3ee9398bef24c0c19
Removes use of timeutils.set_time_override

The set_time_override function in timeutils was written as a
helper function to mock utcnow for unittests before 'mock' was
generally used. Now that we have mock and fixture, we no longer
need to use it.

Change-Id: If6532efe7f3edc91ca3394793a5cc6d4b9435655
Merge "Normalize Scheduler Weights"
Merge "Removes use of timeutils.set_time_override"
Merge "Update oslo log messages with translation domains"
Merge "Add remove external lock files API in lockutils"