Adds support for debouncing calls to rearrangeObjects

- When rearrangeObjects is called by your code or internall when auto-rearranging objects it will be run immediately, but not again unless the debouncedRearrangementThreshold has elapsed since the last time it was called.  If rearrangeObjects is called within the threshold interval, it will be run a single time once the threshold has been met.