Improved performance + fixed quick nav issue

Hash linking has been changed so that instead of directly linking to the
element it instead uses the hash value to pan the carousel the same way
as the buttons on the side. This fixes the issue where the scripted css
and the html fragments were causing conflicts with each other. Also, I
have assigned jQuery dom traversals to variables because traversing the
dom over and over with jq is very wasteful, you should only do it once
for every selector you use