Added geolocation service. Added Karma packages. Added code from v2 branch and re-factored it to be a little less ugly