Forward state through cpp::for_each's dispatch
Add a root state to derive all states/tags from
Add unit tests for explicit and implicit dispatch
Merge branch 'master' of github.com:jaredhoberock/thrust into stateful-dispatch
Merge branch 'master' of github.com:jaredhoberock/thrust into stateful-dispatch
First cut at a stateful dispatch path for all backends' memory primitives and for_each.
Unit tests don't compile yet.
Relax the definition of retag to allow retagging of iterators whose tags
are related by conversion instead of derivation.
Add a derived_type typedef to thrust::system::detail::dispatchable
Make each system's state convertible to its tag.
Refactor the select_system overloads in light of the state types.
Add thrust::host_system_state & thrust::device_system_state

Fixes #159
Merge branch 'master' of github.com:jaredhoberock/thrust into stateful-dispatch
Merge branch 'test-select_system-169' of github.com:jaredhoberock/thrust into stateful-dispatch

Conflicts:
	testing/memory.cu
Add enable_if_defined
Allow minimum_type to simply be undefined (i.e., no compiler error) if no minimum type exists.
Add final type to prevent derivation.
Derive any_system_tag from state & final
Derive all system tags from final.
Eliminate most system-specific overloads of select_system
Guard generic::select_system with enable_if_defined for minimum_system.
This enables a generic solution when it makes sense.
Merge branch 'master' of github.com:jaredhoberock/thrust into stateful-dispatch

Conflicts:
	thrust/detail/type_traits/is_metafunction_defined.h
Eliminate commented-out code from omp/detail/tag.h
Eliminate tbb's superfluous overloads of select_system.
Correct the way in which cpp::tag & cuda::tag derive from system::detail::final
Don't inherit tags from final; it causes problems with nvcc.
Eliminate typo
Test select_system with cuda::tag