Abstract trail source

So that we can use tsv file instead of APIs.
Preliminary TsvTrailSource

Need to make it faster and avoid infinite loops in trails.
Make TsvTrailSource blazing fast
Unescape titles

Also escape title for grep which adds support for non-Latin queries.
Avoid loops, file pages and disambiguation pages
Fix a horrible bug where titles could be skipped
Fetch extracts

tsv_trail.rb can be used to generate YAML for .html.erb files.
Clean up and refactoring needed.
Simplify and unify naming
Retrieve page image too

Also, get rid of Article class, not much logic there.
Don't enable swiping if no touch events
Preliminary slide scrolling for desktop

Smooth scrolling and a bug when zoomed in and scrolling up to be fixed
soon.
Add smooth scrolling on desktop

Still TODO:
* avoid change in image size when scrolling
* handle page up and page down better
* clean up
removed fixed image position for mobile web
close button fixes
new image, no more elephants
added breadcrumb styling to footer + minor copy changes
made footer breadcrumb using list
Make breadcrumbs reflect the content

Also clean up the CSS a bit.
Move window event callbacks to separate Scroll functions
Refactor scrolling JS

Also, make deactivate() really work both in Swipe and Scroll.