Ensure scrollToAnimated always returns a promise

Previously, if no scroll was necessary, it simply returned (null) before 
creating a deferred object. Relying on a promise (with code like
`.scrollToElement(...).then(...)`) could fail.