Adds the initial support for the marker clustering for Android, iOS and Web platforms.
Clustering is implemented using native google maps utils libraries for [Android](https://github.com/googlemaps/android-maps-utils), [iOS](https://github.com/googlemaps/google-maps-ios-utils) and [Web](https://github.com/googlemaps/js-markerclusterer).
This PR is created from previous PR: https://github.com/flutter/plugins/pull/6752
Resolves https://github.com/flutter/flutter/issues/26863
**Android**:

**iOS**:

**Web**:
