Improved route planning

Better handling of Google's direction response code, only clear the
route if a new route is retrieved, start the navigation after the new
route is layed out instead of waiting for the next location update.