RoutePlanner: eliminate redundant set::find() call

set::insert() returns whether insertion took place.  This eliminates
some runtime overhead by searching the tree only once.
RoutePlanner: don't use std::tr1::_Fnv_hash

This is an undocumented internal API that has disappeared long ago.
RoutePlanner: remove "tr" namespace

Now that C++11 has been released, the "tr1" namespace is obsolete.
RoutePlanner: use std::unordered_set
RouteLink: remove obsolete operator<
RoutePlanner: make hash classes private

Don't clutter the global "std" namespace with a RoutePlanner
implementation detail.
Route/AStar: include cleanup
Route/AStar: use std::unordered_map
Route/AStar: eliminate redundant set::find() call
Route/AStar: convert macros to constexpr
Route/AStar: convert "is_min" to template parameter

Make sure it's never evaluated at runtime.
Route/AStar: eliminate implicit AStarPriorityValue initialisation
Route/AStar: add "constexpr" to struct AStarPriorityValue
lib/boost: add a few useful Boost libraries
Util/Cache: use class boost::intrusive::list instead of ListHead

That class is easier to use and makes the code more readable.
Util/Cache: fix truncated comment
Util/Cache: use class boost::intrusive::unordered_set

Unlike std::unordered_set, we don't need an iterator to erase an item.
Trace: make constructors "explicit"