add random_seed field to SolverParameter and have solver use it --
already works for lenet, doesn't work for imagenet w/ rand() calls
add data layer crop tests
add tests for random crop sequence -- currently both fail
cleanup data_layer, add prefetch_rng_ field to it and use instead of
rand -- seeded tests still fail
make seed test pass by setting up new layer to generate the 2nd sequence
test scale param
prefetch_rng in ImageDataLayer
prefetch_rng in window_data_layer
replace remaining uses of rand() with caffe_rng_rand()
replace std::shuffle with version using prefetch rng; improve unit test
add caffe/random_fn lint rule to check for use of rand, rand_r, random
test on "0th iteration" -- before doing any training
Merge pull request #357 from jeffdonahue/test-on-iter-0

Test before doing any training
Merge pull request #352 from jeffdonahue/solver-seed

Eliminate use of "rand" in code; enable deterministic results via solver seed
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