Animate zoom rotate translate

added animation capabilities for zooming and rotating. The rotation uses quaternions for easy slerping. The setCamera method on viewer now takes a ms argument so it can be animated.