Add interrupt handler

Prints out current solution
or terminates the program if invoked twice
[Complex] Add complex moves

Combine multiple moves of different heuristics
add supplySwapper
[SupplySwap] Fixed
[EdgeMove] Delay deleting of empty tours
Two interrupts / sec -> terminate
Merge branch 'interrupt'
Merge branch 'master' into complex

Conflicts:
	src/main.cpp
Print time taken to arrive at solution
Merge branch 'master' into GRASP

Conflicts:
	src/main.cpp
Use Boost library for option parsing