bounce() is not using the actual marker's latlng

The `bounce()` method was using the original `latlng` also for markers with
an updated `latlng` (for example, changed via `setLatLng()` or after dragging it),
causing the animation happening at the wrong place.
This change adds a private `_bounce()` method that would be used by `onAdd()`,
and extends the `bounce()` method updating `_orig_latlng` with the last
marker's `latlng`.