[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;
[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][test_geometries] add custom longitude-latitude point
[test][point_concept] add unit tests for testing the units of custom non-Cartesian
points and BG's non-Cartesian points
[test][point_concept] remove duplicate includes
[core][cs] replace complicated conditional expression with "false"
(the coordinate_system_units class is never supposed to be instantiated
with template parameter value other than bg::degree or bg::radian)
[geometries][point] replace typedef to units of coordinate system by enum storing
the size of the coordinate system class
[geometries][concepts][point concept] replace typedef to units of
coordinate system by enum storing the size of the coordinate system class
[geometries][concepts] remove no longer used file/class
[geometries][concepts][point concept] update the ConstPoint concept
to use the enum instead of the typedef to the coordinate system units
Merge pull request #171 from mkaravel/fix/strong_type_checking_for_cs_template_parameter

Fix/strong type checking for cs template parameter