[strategies] fix conversion issue in projected_point strategy:

Problem:
when p1 (2nd argument of apply) has float as coordinate type, then
the result of the differences u-p1 and w-p1 is a double (because
the calculation type is double), which then is implicitly converted
to float (because the result of the difference is implicitly
converted to the type of the second operand), which means that we
may loose precision.

Solution:
convert p1 to the correct point type (fp_point_type), and then
perform the subtractions (p1 is anyways converted later on, so
just do then conversion a bit earlier).

Note:
This problem was generated as a warning on VS2010, and also appears
as a warning in clang++ and g++ if the -Wconversion option is used.
[test] add missing include (#include <string>)
Merge branch 'develop' of https://github.com/boostorg/geometry into feature/distance
[distance] implement the new file/directory structure fully:
move the free function and reverse dispatch in algorithms/distance/interface.hpp
move the details of the implementation in algorithms/distance/implementation.hpp
keep only these two headers in algorithms/distance.hpp
[distance] implement the new file/directory structure fully:
move the free function and reverse dispatch in algorithms/distance/interface.hpp
move the details of the implementation in algorithms/distance/implementation.hpp
keep only these two headers in algorithms/distance.hpp
Merge pull request #30 from mkaravel/feature/distance

[strategies] fix conversion issue in projected_point strategy:
Merge branch 'develop' of https://github.com/boostorg/geometry into develop