Moved a bunch of serialization macros outside of classes (some untemplatized ones with public fields).
Removed unused serialization macro of log_serializer_dynamic_config_t, moved another serialization macro outside a class.
Moved some serialization macros out of classes, hash_region_t particularly.
Moved some more serialization macros out of class bodies.  All the easy ones have been moved outside their class bodies.
Merge branch 'sam_2537' into sam_2572
Moved some more serialization implementations to .cc files.
Moved metadata serializations to {branch|query}/metadata.cc.
Moved an include to the requisite .cc file.
Changed a bunch of RDB_DECLARE_ME_SERIALIZABLE macros to RDB_DECLARE_SERIALIZABLE.
Moved serialization of rdb_modification_report_t outside class.
Moved serialization functions outside of classes in profile.hpp.
Moved a bunch of protocol.hpp serialization declarations outside of class bodies.
Moved test_cluster_directory_t serialization declaration outside class body.  Removed an RSI -- made a Github issue for it.
Removed RSI comment.  The answer was no.  And meh.
Added RDB_SERIALIZE_OUTSIDE.
Moved directory_echo.tcc to directory_echo.cc.
Added RDB_SERIALIZE_TEMPLATED_OUTSIDE.
Made RDB_SERIALIZE_TEMPLATED_OUTSIDE be variadic.
Moved multi_throttling_server_business_card_t out of multi_throttling_business_card_t, likewise with client.
Used RDB_SERIALIZE_TEMPLATED_OUTSIDE for multi_throttling_metadata.hpp.