Jhbate/add to seagull

@cheddar could you do a quick check of this please? I left the call to collections generic (rather than specialised for profile / groups ) for the flexibility it gives me at this stage. 
This seems ok.  I guess the only thing that really annoys me is that there is an extra contract that the `interface{}` you are passing in is setup to properly deserialize JSON into itself.  It would be really nice if that were encapsulated rather than exposed.