Use Thrust to manage the underlying memory of SyncedMem
Implement and test SyncedMem::resize and reserve
Add Blob::capacity and make Blob::Reshape capacity aware
Merge the Blob constructors and initialize all the fields properly
Change the Makefile to be consistent in style
Use static_cast instead of reinterpret_cast to cast void pointers
minor cast/style fixes

make some casts static_casts

minor style fixes
use handwritten resize methods instead of thrust host/device vectors
-- couldn't get the thrust version working at all
make TestResize less trivial given new syncedmem resize design
add net constructor that takes pointer to other net with which we will
share data blobs with matching names
increase imagenet val batch size to 250 since little additional memory is
used
delete now unused capacity field; syncedmem fields back to original
order