fix gcc-5-exposed build errors
fix gcc-5-exposed build errors

Summary:
We should all be migrating to gcc-5, for the improved performance of its
generated code and for its improved diagnostics/portability.

Include <vector> and <random> explicitly. Before, this worked because we'd incidentally include the required headers in a way that was not required by the standard. Newer compilers are tighter.

This avoids the following errors:

  bistro/bistro/runners/BenchmarkRunner.h:84:8: error: no type named 'default_random_engine' in namespace 'std'
  tiles/indoor/common/MatrixUtil.h:71:8: error: no type named 'vector' in namespace 'std'
  cold_storage/common/xxHashAlgo.h:19:8: error: no type named 'vector' in namespace 'std'
  cold_storage/common/BaseDigestAlgo.h:19:16: error: no type named 'vector' in namespace 'std'
  kernel/rdt/Rdt.h:96:41: error: no type named 'vector' in namespace 'std'
  gorilla/correlation_finder/CorrelationIndexSAX.cpp:33:8: error: no type named 'default_random_engine' in namespace 'std'
  admarket/adlearner/concurrency/GroupWindowSemaphoreTests.cpp:90:12: error: no type named 'default_random_engine' in namespace 'std'

For each of the above, just include the required header.

And this additional one:
  insights/setsuna/zippydb/tests/SetsunaPrefixExtractorTest.cpp: In member function 'virtual void SetsunaPrefixExtractorTest_Transform_withExtendedKey_Test::TestBody()':
  insights/setsuna/zippydb/tests/SetsunaPrefixExtractorTest.cpp:34:50: error: no matching function for call to 'rocksdb::Slice::Slice(std::__cxx11::basic_string<char>::iterator, int)'
  In file included from insights/setsuna/zippydb/SetsunaPrefixExtractor.h:5:0,
                   from insights/setsuna/zippydb/tests/SetsunaPrefixExtractorTest.cpp:7:
  rocksdb/slice.h:48:3: note: candidate: rocksdb::Slice::Slice(const rocksdb::SliceParts&, std::__cxx11::string*)
  rocksdb/slice.h:48:3: note:   no known conversion for argument 1 from 'std::__cxx11::basic_string<char>::iterator {aka __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >}' to 'const rocksdb::SliceParts&'
  rocksdb/slice.h:44:3: note: candidate: rocksdb::Slice::Slice(const char*)
  rocksdb/slice.h:44:3: note:   candidate expects 1 argument, 2 provided
  rocksdb/slice.h:40:3: note: candidate: rocksdb::Slice::Slice(const string&)
  rocksdb/slice.h:40:3: note:   candidate expects 1 argument, 2 provided
  rocksdb/slice.h:36:3: note: candidate: rocksdb::Slice::Slice(const char*, size_t)
  rocksdb/slice.h:36:3: note:   no known conversion for argument 1 from 'std::__cxx11::basic_string<char>::iterator {aka __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >}' to 'const char*'
  rocksdb/slice.h:33:3: note: candidate: rocksdb::Slice::Slice()
  rocksdb/slice.h:33:3: note:   candidate expects 0 arguments, 2 provided
  rocksdb/slice.h:30:7: note: candidate: constexpr rocksdb::Slice::Slice(const rocksdb::Slice&)
  rocksdb/slice.h:30:7: note:   candidate expects 1 argument, 2 provided
  rocksdb/slice.h:30:7: note: candidate: constexpr rocksdb::Slice::Slice(rocksdb::Slice&&)
  rocksdb/slice.h:30:7: note:   candidate expects 1 argument, 2 provided

For this, use "data()" instead of the "begin()" iterator.

Reviewed By: igorsugak

Differential Revision: D4833490

fbshipit-source-id: 4c09cf7409e63b3c20f7897267b598a75dd7a298

facebook/bistro,facebook/bistro,facebook/bistro,facebook/bistro,facebook/bistro,facebook/bistro