Bug 906841 - Add entrypoints to search r=crldc, ran

This makes GridManager::getApps return an array of icon objects. The reason being is that the icon objects hold the information necessary to render apps from entry points, while the app object does not.

The diff is a little hard to read due to the abstraction of the buildDescriptor logic.