Unicode-encode vim.org text for rethinkdb-v1.13

Summary:
After updating RethinkDB to 1.13 and then running the vim.org scraper, we were
getting this error for every vim.org plugin we scraped:

```
Error scraping vim-fanfou (vimorg_id=4972) from vim.org
Traceback (most recent call last):
  File "/Users/david/code/vim-awesome/tools/scrape/vimorg.py", line 68, in scrape_scripts
    db.plugins.add_scraped_data(plugin)
  File "/Users/david/code/vim-awesome/db/plugins.py", line 500, in add_scraped_data
    insert(updated_plugin, upsert=True)
  File "/Users/david/code/vim-awesome/db/plugins.py", line 176, in insert
    r_conn())
  File "/Users/david/.virtualenv/vim-awesome/lib/python2.7/site-packages/rethinkdb/ast.py", line 75, in run
    return c._start(self, **global_optargs)
  File "/Users/david/.virtualenv/vim-awesome/lib/python2.7/site-packages/rethinkdb/net.py", line 213, in _start
    return self._send_query(query, global_optargs)
  File "/Users/david/.virtualenv/vim-awesome/lib/python2.7/site-packages/rethinkdb/net.py", line 305, in _send_query
    query_str = query.serialize().encode('utf-8')
  File "/Users/david/.virtualenv/vim-awesome/lib/python2.7/site-packages/rethinkdb/net.py", line 36, in serialize
    return json.dumps(res, ensure_ascii=False, allow_nan=False)
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 250, in dumps
    sort_keys=sort_keys, **kw).encode(obj)
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 210, in encode
    return ''.join(chunks)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 35: ordinal not in range(128)
```

Test Plan:
Ran `PYTHONPATH=. python tool/scrape/scrape.py -s vim.org 1000`, and verified
the above error is no longer raised for all the plugins we scraped.

Reviewers: xymostech, spicyj

Reviewed By: spicyj

Differential Revision: http://phabricator.benalpert.com/D209
Add a crontab that runs the data pipeline daily

Summary:
So each day starting 10 pm PST, we scrape vim.org plugins, then
github.com/vim-scripts plugins, then recently-updated dotfiles github repos,
then we aggregate all known GitHub plugin repos, then we scrape 3600
non-vim-scripts plugin GitHub repos plugin repos.

Test Plan: Each command was run on the server and the output of ~/logs/cron/*.log examined.

Reviewers: xymostech, spicyj

Reviewed By: spicyj

Differential Revision: http://phabricator.benalpert.com/D210
Add a cronjob to dump DB daily

Summary:
We can then setup Tarsnap to backup these dumps elsewhere. These dumps are
currently only about 15 MB zipped.

Test Plan:
Ran `( cd $HOME/dumps && rethinkdb dump )` in $HOME on the server. Ensured dump
was found in the right folder.

Reviewers: xymostech, spicyj

Reviewed By: spicyj

Differential Revision: http://phabricator.benalpert.com/D211
use 4-space indents for python in .editorconfig
Merge pull request #44 from JGulbronson/master

Added highlighting for the currently selected tag
Tweak selected tag color a bit

... so that hovering over a selected tag doesn't change it.
Add script to fix plugins with vim.org ID duplicates

Summary:
If you look at vimawesome.com/?p=3 right now, you will see many duplicated
"taglist.vim" plugins.

A long time ago, when we scraped a github repo whose homepage was a vim.org
plugin, we would assume that was the definitive github repo associated with
that vim.org plugin and set that repo's vim.org ID. But it turns out, of
course, that there are many different github repos that all set their homepage
to the same vim.org plugin. This led to multiple plugins with the same vim.org
ID in our DB, which violates an invariant assumed throughout the codebase that
vim.org ID is unique in the plugins table.

This was fixed the night before launching, but I forgot/didn't have time to update the data,
and so the data was in an inconsistent state.

With the invariant violated, scraping the same set of sources no longer
guaranteed idempotence, and so each new scrape would accumulate new duplicates.
Basically, when the scraper tries to match a source that has a vim.org ID and
it sees multiple existing plugins with the same vim.org ID, it doesn't know
which one to match to, so it inserts a new row instead of attempting a match.
This led to the proliferation of duplicates you see now.

So this script removes the extra accumulated plugins, and also fixes duplicate
vim.org IDs by only allowing the plugin with the most users to keep its vim.org
ID.

Test Plan:
Locally. Before fix, ran
`PYTHONPATH=. python tools/scrape/scrape.py -s vim.org`, and saw that a bunch of new plugins were inserted when they should
have been associated. Ran
`PYTHONPATH=. python tool/scrape/scrape.py -s github-vim-scripts`,
and saw new plugins were inserted when they should've been associated.

After fix, ran the two commands above again, and ensured no new plugins were
inserted. Also ensured there were no duplicated vim.org IDs

Also did a dry run of the script and looked at script output. For the first
6 plugins or so, manually verified the script made the right decisions in which
plugins to delete, which to keep, and which to assign the vim.org ID.

Ran the script twice to ensure the second time it outputted nothing (meaning it successfully de-duped). Also ran the script after re-scraping to verify there were no new dupes introduced.

Reviewers: xymostech, spicyj

Reviewed By: spicyj

Differential Revision: http://phabricator.benalpert.com/D212
Show plugin name in document title