Fix #45 - update addMapListenerOnce to fix memory leak

Hi, I'm Kevin's colleague (the author of the issue #45).

It looks like "once" events listeners don't always get triggered, adding them to the listeners array clearly fix a memory leak as you can see below (done with the Chrome inspector timeline).

**Without the fix**
![pastedgraphic-4](https://f.cloud.github.com/assets/435534/2088610/12c9cfd6-8e7d-11e3-857f-d0e51f260c8c.png)

**With the fix**
![pastedgraphic-5](https://f.cloud.github.com/assets/435534/2088618/19b45f46-8e7d-11e3-9bf0-92e8f2d51d7d.png)

I can create a plunker example if you want to experiment the issue by yourself.