Implemented Random Restart

Implemented Random Restart with a timeout value, though there seems to
still be a bug.  Hill Climbing is still getting stuck.