Geolocation context sends values as doubles/floats

- We had to change the geoLocation map to <String, Object> to accept the
  values without toString-ing them.
- Fixes #17
Unfinished play-services fix
Grabs the advertising Id on a background thread

- Play Services can't run on the main UI thread, so we get the
  advertising Id on a background thread and then add it to the Subject.
  If an event is sent right after a Subject is created, there is a high
  chance the advertising Id won't be added for that initial event.
  Once the Id is received, it will be added to the following events
  sent.
- This is not a complete fix for the Play Services branch. One more fix
  needs to go in to detect if the Play Services is made available.
- Ref: #16
Follow up fix for Play Services fix

- Using Reflection to get the advertising ID
- Fixes #16
- Goes with d974c4f297fa150760312b3431b194702f92247e