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.