add a way to iterate over the contents of nested collections, extracting the media while also exposing the parent collection that each media belongs to
i'm using a channel to publish each iteration and a recursive function to actually do the iteration
usage: for _, mediaNode := range ib.Iterator(rootNode) { /* do work */ }
entry returns interface{} to indicate we don't know what we're getting back, added additional fail case tests
the entry endpoint returns an interface{} type, consistent with the Content endpoint. this is consistent with the downstream behavior of the api.
also added a convenience method to retreive a type-asserted Gallery, similar to Article, Video, etc.
added tests to enforce graceful failure in a number of bad response cases
added convenience method for pulling in a type-asserted gallery
also cleaned up other content convenience methods, removing (some) duplicate code