Added ability to store markers by a user provided id, rather than the markers position

I've made it so that the user can set an id in the marker options, which is then used to store the marker in the markers hash. Currently if no id is set it will still use the marker position as the hash. I thought I'd see what you thought about this approach before I go any further.

This approach is a bit unwieldy, but it should be backwards compatible with peoples current code 

What I'd like to do is take out all the "internal" code that stores the markers by position and make the id mandatory, similar to `gm-get-lat-lng`. Users could still store markers by position by setting this new required id attribute to the markers position. 

I need to add more to the comments and tests, but I thought I'd share what I've done so far to get some feedback.