Allow for smooth arrows and custom height function

This allows for two things.
 * First is that it will allow smooth scrolling for the up and down
   arrow keys along with the wheel function.
 * Second is this allows us to pass a function to tell the smoothwheel
   to set the height incase the container is wrong. E.g; having a
   parallax site where the body,html is 100% of the window even though
   the doucment.documentElement.scrollHeight is the total height.