Feature/dimension

Summary:
- the dimension value type is always `std::size_t`, it no longer depends on the one used in `traits::dimension<>`,
- the type of `Dimensions` template parameters of `assert_dimension...()` functions is changed to `std::size_t`

PR related to the https://github.com/boostorg/geometry/pull/140.

One thing I noticed is inconsistent(?) naming of `assert_dimension...()` functions. Functions `assert_dimension_less_equal()` and `assert_dimension_greater_equal()` takes Dimensions parameter, as well as function `assert_dimension()`. But the function `assert_dimension_equal()` takes only Geometries. For me `assert_dimension_equal()` and `assert_dimension()` names/interfaces should be swapped.

Another thing, is it required to use `boost::mpl::equal_to` in assert_dimension() ? What's the reason for this? Could simple comparison `==` be done there to be consistent with the rest of the functions?