feature(structs): Implemented a map structure that lazily initializes values

This will be useful when we implement the menu system.
feature(structs): Rename LazyMap to FactoryMap

This more accurately reflects what it does (i.e. create new values).
feature(structs): Add values getter to FactoryMap

This returns all the values as an Array.
feature(menus): A basic (untested) menu system.
feature(entities): Each entity resource's url points to its own JSON representation
feature(entities): Subresources are exposed on the entity with urls to the API endpoint

This is more RESTful than having the client know about the URLs.
feature(http): Pulled `<elgg-resource>` and `elggResourceFactory` into `elgg/http`
feature(likes): Add an `elgg/likes` package
feature(menus): Move menu stuff into `elgg/menus`

Also, new strategy is to render menus completely client-side.
This isn't totally working yet, but figured I'd commit the progress so far.
fix(init): Add `elgg/http/ng` module to angular bootstrap

These features were recently split out into a separate angular module.
fix(ResourceFactory): Rename `createAndGet` to `create`

We'll assume going forward that `create` implies some kind of
initialization as well, without explicitly saying what that
all is. Or maybe we'll even remove the initialization altogether.
Either way, `createAndGet` is no longer an appropriate name.
fix(comments): Rendering a list of comments works again