MAID-390-cereal_integration_common

Replacing protobuf with cereal in common and adding global helper functions to serialize.
I kept getting things like these in ctest -R;
Found C system header after C++ system header. Should be: serialisation.h, c system, c++ system, other.
for
```
#include <string>
#include <cereal/types/map.hpp>
#include <cereal/types/vector.hpp>
#include <cereal/types/string.hpp>
#include <cereal/types/boost_optional.hpp>

#include <cereal/archives/binary.hpp>
```
On permuting it the way I did, it disappeared so I thought it's hanging on knife edge and didn't want to disturb the balance. But the way you do doesn't trigger those errors. If you came to that in one go (ie., archive should go before types headers), what's the secret?