[Reviewer Andy] Sproutlet support - DO NOT MERGE!!!

Andy

As discussed, this pull request is for you to review the remaining unreviewed code changes for Sproutlets. The main bits should need to review are

-  the updates to BasicProxy to make it suitable as a base for SproutletProxy (basicproxy.cpp, basicproxy.h and some corequisite changes to icscfproxy.cpp and icscfproxy.h to keep it building/working)
-  the SproutletProxy class and anciliaries (sproutletproxy.cpp + sproutletproxy.h)
-  the SCSCFSproutlet class (scscfsproutlet.cpp/scscfsproutlet.h and some minor tweaks to aschain.cpp and aschain.h)
-  a few miscellaneous updates to PJUtils - mostly to make cloning of messages sane.



Mike
Do we need a default identifier?  I can't see a use for it unless we want to record route, which requires a call to `dialog_id(std::string&)` to set up a dialog id (or default).