C++ update to preserve order of comorbidities.
 * use vector of pairs for co-morbidities: never need to lookup a group name, so no value in using a map.
 * wrote out typedefs in a lot of detail - could condense.
 * does compile, but not tested yet.