Reviewer Mike - Sproutlets control record routes

Mike, this implements the long-discussed changes to the Sproutlet API to allow Sproutlets (but not ASs) to more accurately control the Record-Route sets.

I've tested by running the existing UTs (not your new ones yet) and the only outstanding issue is that the SCSCF Sproutlet sometimes adds itself to the route set multiple times in a single hop.  This breaks two SCSCFTest test.
Why an O(n) for loop rather than a map with a custom comparison function?  Presumably this avoids us having one Sproutlet potentially multiple times in a map, so may be better - if so would be worth commenting.