Use component-wise swap inside multivector move constructor

Makes VS2010 happy
Fixing signed/unsigned mismatch
Supress unknown pragma warning when openmp is not available
Replace boost::remove_reference/remove_const with std::decay
Minimize Boost dependencies

* Use standard library components where available
Removed Boost.thread from DEPENDS.md

[skip ci]
Reverting switch from boost::tuple to std::tuple in 675f8b0cdc

boost/fusion/adapted/std_tuple.hpp uses variadic templates which are
unavailable in Visual Studio 2010.
Adding vex::extents helper object for slicer generation

vex::extents is very similar to boost::multi_array::extents. It helps to
specify dimensions for the slicer object:

    vex::slicer<2> slice(vex::extents[n1][n2]);

refs #31
Explicitly provide copy constructor for vector_view

This allows to assign vector_view to a vector_view.
vex::range constructing from a size_t
Slicer simplified
Added index_gen struct (similar to boost::multi_array::index_gen)
index_gen keeps active dimensions as boost::fusion::vector template parameter
Introducing multi_array container

refs #31
Replacing M_PI with boost::math::constants functions

refs #45
Install boost-math on Travis-CI
Revert "Install boost-math on Travis-CI"

This reverts commit 4f236fa01ae59cf4ceac161cac5115bebf0c3e2c.

math::constants are already there; the problem was in
root_two_div_pi<>() function.
boost::math::constants::root_two_div_pi<>() is unavailable in older boost
boost::math::constants::two_div_pi<>() is unavailable in older boost
Use same kernel name for all expressions

refs #46