Impelemented zooming and slightly better scrolling.
Merge with pcwalton's updated branch