PROTON-526: split the definitions in engine.h into separate "per object" files; also added use of doxygen grouping tags so that generated API docs better reflect the design of the API