[iterators][point_iterator] define increment/decrement operators for the
point_iterator class; these operators are needed so that expressions like
    point_iterator it = ++other_it;
do not result in compilation errors;
[iterators][segment_iterator] define increment/decrement operators for the
segment_iterator class; these operators are needed so that expressions like
     segment_iterator it = ++other_it;
do not result in compilation errors;
[algorithms][closest_feature] write for-loop the proper way (i.e., so
that it is a local variable to the for-loop)
[iterators][segment_iterator] fix the segment_iterator's iterator category
to be std::bidirectional_iterator_tag
[test][iterators][point_iterator] add appropriate concept checks from the
Boost.Iterator and Boost.ConceptCheck libraries
[test][iterators][segment_iterator] add appropriate concept checks
from the Boost.Iterator and Boost.ConceptCheck libraries
[iterators][segment_iterator] fix grammar in the comment about the
iterator category of the segment iterator
[core][cs] add stronger type checking for template parameter of bg::cs::spherical,
bg::cs::polar, bg::cs::spherical_equatorial and bg::cs::geographic; the only
allowed values for this template parameter are bg::degree and bg::radian;
[geometries][point] make the point derive privately from the
coordinate system; the advantage of that is that a non-Cartesian point defined
with bg::cs::spherical<T>, bg::cs::geographic<T>, etc., where T is neither
bg::degree not bg::radian cannot even be instantiated given the stronger
type checking implemented in core/cs.hpp for the non-Cartesian coordinate
systems;
[core][cs] change namespace core_dispatch to namespace core_detail;
for non-Cartesian CS's do not derive from core_detail::coordinate_system_units,
but rather use core_detail::coordinate_system_units to define the units type;
[test] Move distance() tests to separate directory.
[core][cs] update copyright header; make coordinate_system_units a struct;
[geometries][point] update copyright header; replace derivation from CoordinateSystem
by a private typedef (this provides the necessary type checking for the units for
non-Cartesian coordinate systems);
[geometries][concepts][point concept] replace boost::ignore_unused_variable_warning()
by boost::ignore_unused(); add typedef for the units of the coordinate system (this
enables a static check for the units type used in non-Cartesian coordinate systems);
[geometries][concepts] add helper class that provides the type of the
units for non-Cartesian coordinate systems, and sets this type to void
for Cartesian ones (used for type checking in the point class and the
point concept);
[test] Move from_wkt to main test directory and tweak #includes.
[test] Move set ops algorithms tests to separate directories.
[test] Move disjoint, relate and within tests to separate directories.
[test] Move IO tests from multi directory.
[test] Move set and relational operations tests to separate directories.