Misc updates

Mainly less allocations / simplifications.

May want to double check b7fcbf2 as it may leave things too restrictive and may not be in line with future plans for Nickle.
Also if you don't want the dependency on another lib for the Groupable behaviour, I can copy the code in. (It's not much)