Avoid OSError in get_blkdev_major_minor with network filesystems

To avoid OSError (File not found) thrown for volumes on network filesystems
during volume copy with CONF.volume_copy_bps_limit, this patch adds a check
of whether the specified file is on the local block devices to
get_blkdev_major_minor().

It also adds a testcase for get_blkdev_major_minor with a file on nfs and
fixes it with a regular file.

Change-Id: I0b725bba07ad632bfa0c922bfce1652efe59b033
Closes-Bug: 1348230
Add return of updated object on update from DB

There are a number of update methods in db/sqla/api
that update objects but no longer return the updated
reference for said object.

This patch adds the missing returns which are already
expected in the calling cidner/db/api wrapper. At some
point a close look at usage in callers
(ie cinder/volume/manager) should be done to make sure
we're being efficient here and not doing another get after
every update.

Change-Id: I0464d1879571a0044a416d652a186b1462c57fa2
Closes-Bug: #1349912
Move SSHPool into ssh_utils.py

utils.py is loaded by almost everything, but SSH
code and imports (paramiko) are only needed by certain
drivers.

Split this into a separate file to reduce overhead (and
things that can break) for commands like cinder-manage.

Partial-Bug: #1348787

Change-Id: I46896f2bd1fd0de2aedde8e87e255398e5bc3171
Move generate_password into volume utils

This is only used in places where volume/utils is
relevant, and moving it there reduces the amount of
code that has to load the python Crypto library.

Closes-Bug: #1348787

Change-Id: Id74fdd2d6f12f0196055deb1b0dd610677caff0f
Merge "Move SSHPool into ssh_utils.py"
Merge "Move generate_password into volume utils"
Merge "Add return of updated object on update from DB"
Merge "Avoid OSError in get_blkdev_major_minor with network filesystems"