Merge partial implementation of standards proposal N3960

This is a request to merge a partial implementation of standards proposal N3960, adding parallel functionality to the standard template library. The reason for this partial merge is to offer additional performance enhancing tools to the master branch from the currently supported functions. As of the n3960 latest commit, the following functions are implemented:

* `copy` , `copy_if` , `copy_n`
* `move`
* `count`, `count_if`
* `reduce` , `transform`
* `fill`, `fill_n`
* `for_each`, `for_each_n`
* `swap_ranges`

This set of functions will be ready to be used and implemented into currently existing code to improve performance. Any issues that arise from the use of these functions can be used to improve future implementations and let us know what, if anything, we should devote more time to.
Because I don't see any check or guarantee that `T` will not be a reference type (other than the compilation error). Where is this enforced? Under that apparent condition `forward<T>` is equivalent to `move` anyways.