units: add more/better ways to make ratio units
units: note TODO
units: make units_prod<> friendlier

Now its complicated arguments don't need "typename "..."::type"
around them, which makes them look nicer.
(units_prod is meant to be the relatively friendly type-level
units-combining interface.)
add non-member units_pow<> (type-level operator)
Merge branch 'master' into unitizing1
comments
re-add tile_size
polygon_collision_detection: fix some temporaries I accidentally left

No behavior change, but it looks reasonable now.
use bounding_box and shape in the global namespace

This might strike the right balance regarding namespace geom.
fix gl_rendering.cpp for units
fix object_and_tile_iteration for units
fix tile_physics.hpp for units
fix main.cpp and main.hpp for units
finish fixing tiles.hpp for units
use std::declval for a nicer decltype()
gl_data_preparation: fix some types

(This is units-related but does not require the units patches;
it deserves to be fixed regardless.)
polygon_collision_detection: update some comments per Eli
units: fix numeric_representation_cast's impl to be correct in more cases

It previously couldn't handle the case where the explicit
template argument was unit<> but the value argument was non-unit.
units: don't require BOOST_RATIO_EXTENSIONS

Because of include order, main.cpp didn't compile in the
units branch without this; and it doesn't really hurt.
units: bring std::abs in line with bounds_checked_int abilities

(needed for some code.  IIRC we avoid unqualified abs() because
it misses std overloads for non-'double' types.. possibly even
calling the 'double' version [which is specified by C] for ints)

Still a bit dubious, ah well.