Fix CellStateManagerFile init to failure

Currently, specifying a cells_config file in nova.conf causes
CellStateManager to fail and in turn stops the nova-cells service from
starting. The reason is that CellsManager creates an instance of
CellStateManager with no arguments. CellStateManager __new__ runs and
creates an instance of CellStateManagerFile which runs __new__ and
__init__ with cell_state_cls and cells_config_path set. At this point
__new__ returns CellStateManagerFile and the new instance's __init__
method is invoked (CellStateManagerFile.__init__) with the original
arguments (there weren't any) which then results in:
2014-04-29 11:52:05.240 16759 TRACE nova self.state_manager =
cell_state_manager()
2014-04-29 11:52:05.240 16759 TRACE nova TypeError: __init__() takes
exactly 3 arguments (1 given)

It seems reasonable for CellStateManagerFile to derive the
cells_config_path info for itself so I have updated the code with that
change and added unit tests to catch this bug and to check that the
correct managers are still returned

Closes-Bug: #1314677
(cherry picked from commit 695191fa89387d96e60120ff32965493c844e7f5)

Conflicts:
	nova/tests/cells/test_cells_state_manager.py

Change-Id: I9021640515142a3ca95c2d9e7b03e19b529bc175
Merge "Fix CellStateManagerFile init to failure" into stable/icehouse
Retry on closing of luks encrypted volume in case device is busy

We're seeing races in the gate on detach of an encrypted volume where
the device is busy so the detach fails, which causes the delete of the
volume on the cinder side to fail because the volume is still in use and
then Tempest times out waiting for the volume to be deleted.

This simply adds a retry to close the encryption device.  I use
attempts=3 since that's what we use for lvremove.

Closes-Bug: #1374458

Change-Id: Ia0667da7dee247ba8c3338b296244b2a71d1045d
(cherry picked from commit eef97cdf4bb7f426d7feb394ef54510db8b1656b)
Merge remote-tracking branch 'upstream/stable/icehouse' into stable/icehouse