Fix handling of unordered_map/unordered_set on OSX 10.9.0.

Depending on the compiler + standard library combination,
unordered_map/set may or may not be available. If available
they maybe in the std or the std::tr1 namespaces.

Apple switched to using libc++ with 10.9.0 which places
unordered_map in std, breaking our assumptions about the
platform.

This change refactors our logic for dealing with the namespace
switching, making it a three state thing rather than two. There
are three defines now, CERES_NO_UNORDERED_MAP, CERES_STD_UNORDERED_MAP
and CERES_TR1_UNORDERED_MAP. Earlier the first two were conflated
into one, leading to the breakage.

Change-Id: I904fe8c49529169bdefa9f2ee6d629e7eab0b855
3 files changed