Add linker optimizations and dead code and data elimination.
Add linker optimizations and dead code and data elimination.

Linkers also have options we can configure! The most usefull feature is
to give every function its own section. This results in some bloat at
compile time, but at link time now the linker can do dead code and data
elimination by simply discarding appropriate sections.

This works by splitting the `.text` section in a way that makes it
possible to later only pull in sections that are actually referenced.

That is, the basic idea is to keep the matching between sections and
functions intact, so we can optimize based on it in the linking stage.

Note: there's still an issue with how `libOSRM.a` gets build. CMake
currently passes the linker flags on to ar, in order to create a static
library. But ar does not understand the linker's flags.

Referenes:

- https://sourceware.org/binutils/docs/ld/Options.html#Options
- http://elinux.org/images/2/2d/ELC2010-gc-sections_Denys_Vlasenko.pdfMCþ"
- http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_EXE_LINKER_FLAGS.html
- http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_MODULE_LINKER_FLAGS.html
- http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_SHARED_LINKER_FLAGS.html
- http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_STATIC_LINKER_FLAGS.html

hydrays/osrm-backend,yuryleb/osrm-backend,frodrigo/osrm-backend,yuryleb/osrm-backend,beemogmbh/osrm-backend,raymond0/osrm-backend,KnockSoftware/osrm-backend,hydrays/osrm-backend,neilbu/osrm-backend,deniskoronchik/osrm-backend,duizendnegen/osrm-backend,KnockSoftware/osrm-backend,KnockSoftware/osrm-backend,duizendnegen/osrm-backend,arnekaiser/osrm-backend,felixguendling/osrm-backend,felixguendling/osrm-backend,beemogmbh/osrm-backend,hydrays/osrm-backend,bjtaylor1/osrm-backend,yuryleb/osrm-backend,hydrays/osrm-backend,neilbu/osrm-backend,Project-OSRM/osrm-backend,beemogmbh/osrm-backend,raymond0/osrm-backend,beemogmbh/osrm-backend,duizendnegen/osrm-backend,deniskoronchik/osrm-backend,oxidase/osrm-backend,KnockSoftware/osrm-backend,yuryleb/osrm-backend,Project-OSRM/osrm-backend,arnekaiser/osrm-backend,Project-OSRM/osrm-backend,raymond0/osrm-backend,bjtaylor1/osrm-backend,bjtaylor1/osrm-backend,arnekaiser/osrm-backend,Project-OSRM/osrm-backend,deniskoronchik/osrm-backend,bjtaylor1/osrm-backend,oxidase/osrm-backend,frodrigo/osrm-backend,arnekaiser/osrm-backend,frodrigo/osrm-backend,raymond0/osrm-backend,duizendnegen/osrm-backend,oxidase/osrm-backend,oxidase/osrm-backend,deniskoronchik/osrm-backend,neilbu/osrm-backend,felixguendling/osrm-backend,neilbu/osrm-backend,frodrigo/osrm-backend