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.
Sure, that's easily done if we all agree to diverge from the standard interface. The aim was to stay as closely to `std::vector` as possible.