Texture atlas

* Combines `TextureAtlas` and `TextureAtlasBuilder`. 
* Makes `TextureAtlas` and `BillboardCollection.textureAtlas` private.
* Removes `Billboard.imageIndex` and adds `Billboard.imageUrl` and `Billboard.image`.

For #1688.

The functions in `TextureAtlas` were changed to mimic those that were in `TextureAtlasBuilder` though it may be better to return promises. See the use of the `TextureAtlas` in `LabelCollection` which expects the callbacks to be executed before returning.


I kept it the same as before because of this line in `createTextureAtlas` had this line:
```javascript
// ANGLE Workaround
        atlas.texture.sampler = context.createSampler({
            minificationFilter : TextureMinificationFilter.NEAREST,
            magnificationFilter : TextureMagnificationFilter.NEAREST
        });
```
That doesn't seem to be a problem anymore though so I'll remove it.