added state "GPS only", added AbstractService().updateState() and STATE_* variabled