report UVA in platform test
switch to unified virtual addressing CUDA memcpy

Host / device copies are distinguished by the virtual address of the
pointers instead of explicit memcpy modes.
replace softmax cudaMemcpy with caffe_gpu_copy
do all caffe_copy() as UVA mem copy, and drop caffe_gpu_copy()

Do all memory copies by `cudaMemcpy` in UVA mode so that the same
`caffe_copy()` interface works for all transfers.

`cudaMemcpy()` is used in lieu of BLAS copies because they do not
understand UVA.

Drop the now unnecessary `caffe_gpu_copy()` since location of the
pointers is now irrelevant to the interface.
replace all memcpy by caffe_copy
replace all memset with caffe_set() / caffe_gpu_set()

...except for `SyncedMem` since it has no type.
reduce caffe_copy to instantiations, split off caffe_memcpy for void*
fix casts (static for void*)
Merge pull request #555 from shelhamer/uva-memory

Switch to Unified Virtual Address memory copies