Factor out common code and test

The findInterimTiles method was used in three renderers.  This change makes it available on the tile source and adds some basic tests.
Fix return from findLoadedTiles

Previously, the findInterimTiles method was returning undefined if the min x/y coord for a tile range was already in the lookup.  The return says it indicates whether all tiles for the given z are loaded.  This change corrects the return.

This change also reveals a misunderstanding of the tile range returned by `getTileRangeForExtentAndZ`.  The previous findInterimTiles method was treating max values as inclusive.  This is intuitive.  It looks like the method returns a range where max values are exclusive.
Passing tests
Removing logic that assumes occasionally stretched tiles

When the dom renderer included logic to stretch tiles so that gaps were properly filled for fractional zoom levels, we needed to take this into account when getting a tile coordinate for a given coordinate and resolution.  This was never the proper logic for a renderer that wasn't stretching occassional tiles (e.g. the WebGL renderer, the Canvas renderer, or the new DOM renderer).
Making it explicit that this is a range of tiles

With tile range extending rectangle, a tile range that represented a single tile was not allowed.
Image layer renderers add attributions to frame state
Attribution control reads attribs from frame state
Correct range for extent and resolution

Tile ranges are inclusive.  When getting the tile range for an extent, the top-right corner of the extent should be considered with a different intersection policy than the bottom-left corner.
Sharing code with rectangle

We cannot use the rectangle constructor here because a rectangle makes an assertion about min being less than max and a range may have equal min/max.
Rename ol.*.isSupported function to ol.*.SUPPORTED const
Add WMTS GetCapabilities parser

Implements WMTS GetCapabilities parser, which depends partly on
an OWSCommon parser.

Integration with the layer source will be done at a later stage.
Merge pull request #207 from tschaub/tilerange

Make tile range calculation consistent.  Tile ranges are always inclusive in their min/max values.
Merge pull request #213 from bartvde/wmtsclean

Implement WMTS GetCapabilities parser.
Merge pull request #210 from elemoine/imageattribution

Image layer support to attribution control
Rename ol.Geolocation.isSupported to ol.Geolocation.SUPPORTED.

And add the 'const' JSDoc Tags.
Merge branch 'master' of github.com:openlayers/ol3 into interim-tiles
Several fixes to the WMS Capabilities parser

Make sure the object structure returned is not mangled by Closure

Do not use closure XHR or JSON in the example

Use Jasmine's async support in the test cases

Get rid of some backwards compatibility now that we have a fresh start
Remove tile grid extent_ property

This is never used in ol3.
Merge pull request #214 from fredj/supported-const

Rename *.isSupported functions to *.SUPPORTED constants
Fewer tiles to be considered fully loaded

With 797dba2cdbabd8fa0a78c32a7b3bfcdbff29eea8 we no longer have to load excess tiles to consider an extent fully loaded.