[gps] add gps_periodic_check to reset fix after timeout

Make sure the gps.fix is reset to NONE if no new gps messages are received for GPS_TIMEOUT seconds (defaults to two).
Also renamed the gps.last_fix_time to gps.last_3dfix_time, since you might still have a 2D fix...
Seems to be the right way to check if there are no new messages at all (e.g. gps unplugged/broken), rather than checking for 3d fix only...