Log exception if max scheduling attempts exceeded

This logs the last exception seen by the scheduler to help troubleshooting.

When an administrator shows an errored instance, the fault reported is
NoValidHost which is easily misread as insufficient capacity.

This is currently covered by tests.

Change-Id: I636ec9809ded2d4e3404c1f13e0d7635b9826bfe
xenapi: reorder volume_utils

Grouping related functions together. Renamed _create_pbd to show it is
not called outside volume_utils.

Change-Id: If6106a81d58e059e2e683ad0556d4225a9b894e2
Merge "Log exception if max scheduling attempts exceeded"
Merge "xenapi: reorder volume_utils"