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
Remove unused variables and parameters.
Correct shadowing of variables that already exist.
Use unsigned integer for iteration.
fixup for unused variables.
Remove usage of an uninitialized variable if the curl query fails.
Merge pull request #66 from robertmaynard/fix_warnings

Fix warnings
c++: return a reference to the class from operator=
c++: take a const& in operator=

MSVC9 errors out with it complaining that the argument isn't guaranteed
to be aligned to 32 bits (though why it thinks it can assume that
anyways is a separate issue).
Merge branch 'master' into test-merge