changing sindex perfmons to not collide with primary key
Missing default values

Review 1631 by @larkost
Merge branch 'v1.13.x' into sam_2537
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 'v1.13.x' into sam_2537
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.