BDM class and transformation functions

This patch adds the utility functions that will help us switch
between versions od block_device_mapping data.

In order to acomplish this, and to have a more structured aproach to
dealing with block device mapping data in the future, this patch
introduces a BlockDeviceDict class which is a thin wrapper around a
standard dict that makes it easier to reason about which fields are
present in the dictionary, and introduces said conversion routines.

Change-Id: I9370333059b8c9aaf92010470b8475a913d329b2
Addint the from_mapping functionality for lists

Missing unit tests

Change-Id: I8c3b6a2574f8e2a43d61f079a5e84aba83d3cfd5
New Block Device Mapping DB migration

Change-Id: Ibb84b59fbcf4f8cb55c966ef4b67d3aa65954a2d
Temporary commit for backup

Change-Id: I50820c55a2d4e16926e0fd3f39c4e9589ed00a75