Eliminate race in merge_subtiles_by_key_closure.

Fixes #327
Merge pull request #328 from jaredhoberock/merge_sort

Eliminate race in merge_subtiles_by_key_closure.
Eliminate race in thrust::system::cuda::detail::merge_n

Fixes #329
Merge pull request #330 from jaredhoberock/merge

Eliminate race in thrust::system::cuda::detail::merge_n
Removed extra semicolon from word_count example

Removed extra semicolon from word_count example
Merge pull request #332 from souravzzz/patch-1

Removed extra semicolon from word_count example
DOC: Typo in device_reference example.
Merge pull request #333 from johntyree/patch-1

DOC: Typo in device_reference example.
Rename thrust::dispatchable to thrust::execution_policy
Rename thrust::detail::dispatchable_base to
thrust::detail::execution_policy_base
Rename most "System" template parameters to "DerivedPolicy"
Promote thrust/detail/execution_policy.h to thrust/execution_policy.h
Eliminate system/*/detail/adl_targets.h
Introduce system/*/execution_policy.h
system/*/memory.h no longer needs to #include ADL targets at the bottom of the header.
Eliminate typo
Rename system/*/detail/tag.h to system/*/detail/execution_policy.h
Actually rename system/*/detail/tag.h to system/*/detail/execution_policy.h

Fixes #334
include cpp's execution_policy.h instead of memory.h inside TBB's reduce_by_key implementation.
Merge pull request #335 from jaredhoberock/execution_policy

Execution policy
Workaround pedantic warning in numeric_traits.h.
Rename thrust::device_system to thrust::device_execution_policy.
Rename thrust::host_system to thrust::host_execution_policy.
Merge pull request #339 from jaredhoberock/execution_policy

Rename thrust::device_system to thrust::device_execution_policy.
Apply raw_reference_cast in CUDA's reduce implementation to allow construction of OutputType from the input type.