Resolved detached HEAD problem

Was accidently working with a detached head for the last commit.  Have fix this problem
and this commit unfortunately contains a few changes.

The structure of the Marker object has changed to improve the inheritance hierarchy.  Now
deactivate() calls cleanup() to handle the actual removing of objects from the map.  This
is overriden, for instance, by ErrorMarker to remove the blinking center and infowindow that
are unique to it.