Distributed vector

This pull request adds a first implementation of a distributed vector (`hpx::vector`). This is a segmented array, where the segments can live on different localities. It exposes a segmented iterator which is modelled after Matt Austern's classical paper (http://lafstern.org/matt/segmented.pdf). This pull request also adds integration of this data structure with `hpx::parallel::for_each`.

I would like to ask to merge this into the master branch so others can start using it. I believe `hpx::vector` will add a valuable higher level abstraction to HPX, but it definitely needs some iterations in terms of the exposed interface and implemented functionality.

Several people have contributed: @sharmaar12 who worked in the context of GSoC 2014 and @gbibek who added distribution policy in the context of his masters thesis.
Two concurrent calls to that function will lead to a race condition.