Refactor vtkOsmLayer::AddTiles() into 3 methods

Purpose is to support deferred initialization when multithreading added.
Add vtkMapTileSpecInternal to store tile info before initialization.
3 new methods:
* SelectTiles() identifies which tiles and/or specs apply to current view
* InitializeTiles() downloads image files for tile specs
* RenderTiles() updates the renderer
Begin vtkMultiThreadedOsmLayer class

Stubs only (passes everything through to vtkOsmLayer)
Make vtkOsmLayer::AddTiles() virtual
Use vtkMultiThreader to request multiple image files concurrently
Add second vtkMultiThreader to run request threads in background.

Also includes TimerCallback to poll when new tiles are ready.
Minor refinement to background thread logic; also updated comments
Replace GetScheduledStackSize() method with atomic variable.

Reduces number of mutex calls during tile request loop
Generalize handling of asynchronous layer interactions.

* Add an asynchronous flag and resolve method to vtkLayer, for subclassing.
* Add timer/callback to vtkMap, which calls resolve methods on async layers.
* Add asynch "state" to resolve logic in asynch layers.
Add accessor for state of async layers

So applications can see what is going on if they want.
Includes moving AsyncState from vtkLayer to vtkMap.
Also renamed enums to include "Async".
Merge branch 'master' into john/vtkMultiThreadedOsmLayer

Resolved conflicts in:
	vtkMap.cxx
	vtkMap.h
	vtkOsmLayer.cxx
	vtkOsmLayer.h
Merge branch 'master' into john/vtkMultiThreadedOsmLayer

Resolved conflicts:
	vtkOsmLayer.cxx
Fix test code to hand layer ownership over to the map
Merge branch 'master' into john/vtkMultiThreadedOsmLayer

Resolved conflicts:
	vtkOsmLayer.cxx
Merge pull request #55 from OpenGeoscience/john/vtkMultiThreadedOsmLayer

John/vtk multi threaded osm layer