New Simid fix

This PR includes and supersedes #793 as well as 'fixes'  #792.

The issue with boost/uuid/uuid_generators.hpp is that the number of open curly braces in the files is two greater than the number of closed curly braces in the file.  The extra open braces are inside of strings.  This messes up cycpp's depth calculation.

Rather than trying to update the statement regex (which would have taken a long and unknown amount of time), the strategy here is to implement a special macro `CYCPP` that is only defined by cycpp when it runs cpp.  This is then used to include (or here, skip) certain parts of the code... Like the unparseable bit.  

In the future `CYCPP` may even be used as an optimization to have cycpp not parse things it doesn't need to.  But that is a task for a rainy day or undergrad!