Split RestrictionMap and NodeBasedGraph from EdgeBasedGraphFactory

First step in an effort to simplify EdgeBasedGraphFactory.
Reorder initialization to fix warnings
Move BFSComponentExplorer to own header.
Split EBGF::Run into smaller sub-functions

I'm not too happy with this yet. It is not really clear cut.
Also, I would like to move the logging in ::Run, seems messy in the
sub-functions.
Replace numeric_limits with SPECIAL_NODEID / SPECIAL_EDGEID
Apply clang-modernize to Contractor/
Apply clang-format on Contractor/
Switched to std::shared_ptr in Contractor/
Move BFSComponentExplorer to Contractor/
Apply clang-format on BFSComponentExplorer and RestrictionMap
Add timing to EBGF
adjust speeds to universally use 4/5th of the free-flow speed as expected avg speed

- this is a workaround until we get more thourough work done on the cost model
- this is related to #955 and #989
remove debug output
Merge branch 'ebgf-refactor' of https://github.com/TheMarex/Project-OSRM into TheMarex-ebgf-refactor
Merge branch 'TheMarex-ebgf-refactor' into develop
readd <chrono> include lost in rebase
port TimingUtil header to C++11s <chrono>
port TimingUtil header to C++11s <chrono>
remove boost/noncopyable, fwd decl
remove unneeded boost include