1. add DeviceMemory pointer to CommandBufferStagingStream
- this is needed for custom allocation/free with coherent memory where the memory allocated is associated with a VkDeviceMemory and this VkDeviceMemory is needed during free.

2. switch passing alloc/free functions as const references instead of
   rvalues
- this allows multiple CommandBufferStagingStream objects to refer to
  the same alloc/free function.

New tests added to verify
- DeviceMemory passed to alloc is available in free.
- allocBuffer and free gracefully exits if underlying references to alloc/free
  functions are invalidated

Test results: https://paste.googleplex.com/4578729891201024

Change-Id: Ib6850de9f8dbede18d6fbb4e13ce871e3795c0ea
(cherry picked from commit 3590dbd8d85cbabc84a2ee36458239ff95a54bbe)
3 files changed