Refactor scroll saving

Also make it use getBoundingClientRect. scrollHeight is a little fragile and
breaks if, say, loadingBelow_ changes, and I would like to have that freedom in
the future.