Revert "Revert "New GPS hal""

This reverts commit 0ad3e08a03b9bce2a1f63cd4cba34ff259e2c03f.
Revert "Turn back to old gps hal"

This reverts commit d61f55391e21e2ca94edd269f9b8a0399274eb1f.