Cache old location lookups for speed

This happens in the UI thread so it should be fast.
Don't add events to bus if they already exist.

For speed?? Should speed up the app.
Merge pull request #209 from linster/master

Cache old location lookups for speed, don't add duplicate events to bus