[WIP] Implement PCCA and PCCA+

At this point, I think the key idea is to see whether we like the style of how this works / looks / flows.  I'll add tests once we agree on the API etc.
Note that for the GHMM, this is a method on the class, not a separate function.