Added ruleset merger script

Merger script added.
TODO: fix it to work with the correct tree
Changed name to make it clearer
Fixup commit

For some reason, the file was not committed correctly. Re-doing the
commit-
Added 'git diff' generation

Used pyhton subprocess.call() to automatically generate the git diff and
save it in /tmp/ with a random filename
Merge branch 'master' of git://git.torproject.org/https-everywhere
Alexa ruleset checker working

The ruleset checker seems to be working: it downloads and unzips the
Alexa Top1M and automatically generates the git diff.
Comparing the two seems to be working as well.

Manually checked some rules: they seem to have been correctly identified
as in the Top 1M and not in stable
Merge branch 'master' of git://git.torproject.org/https-everywhere
Added rule limit and recognition of edited rules

Rule limit was implemented using csvReader.max_lines and breaking
the loop when it's hit
Implemented tecognition of edited rules via the "M" flag of git
diff.
Output was tidied up a bit to account for the different wording (used tabulation)
Merge branch 'master' of git://git.torproject.org/https-everywhere
Merge branch 'master' of git://git.torproject.org/https-everywhere
Edited to raise IOError for Python < 3.3.4

In Python < 3.3.4 the FileNotFound exception is not present.
As some filenames have weird encodings, and it's too problematic to fix
the code to consider those, the FileNotFound error approach has been
mirrored to work with Python < 3.3.4
[OpenStreetMap] enable the main site, except for /edit
- the editor was breaking in firefox https://trac.torproject.org/projects/tor/ticket/8841
- rather than fix the bug, OSM seems to be redirecting their editor to port 80 https://github.com/openstreetmap/iD/issues/1435
- no securecookies until that is fixed :/
[OpenStreetMap] not just the wiki anymore!
- in the months since that bug report, https was deployed on the main site and seems to work
[OpenStreetMap] add help, lists, trac
[OpenStreetMap] add taginfo & tiles
Remove blocking HTTP header listener

After thinking about this more, this function seems insane. I think we should
remove it for a lot of reasons. Here are the big ones:

1. Performance

We want wider HTTPS Everywhere adoption, and performance is the big limiting
factor here. The biggest complaints are still "it's slow," and blocking all
HTTP request headers to loop over & reconstruct cookies is nuts.

Testing on a CR-48 & other CPU-limited machines, HTTPS Everywhere still causes
a significant performance/battery hit (*especially* this single function).

2. It doesn't really work right

If the comments are any indication ("XXX I have no idea..."):

The if(ruleset) code doesn't actually secure any cookies -- it just adds the
ruleset to the tab, but doesn't append a new secure cookie to the newCookies
array.

3. The race condition this "prevents" seems just silly

The old justification for this function is it prevents a race-condition, but
wow, that's insanely hard to replicate. After running with some alert()s for
some time, I can't even get the warning in question to trigger.

To really steal a cookie here, you'd need:
- A site that supports HTTPS
- and is in our rulesets
- and has appropriately scoped, secureable cookies
- and sets them without the HTTPS Only flag
- and they're interesting enough to steal

AND

- An active, MITM attacker that controls a subdomain of interest
- with the ability force the user to visit an HTTP page
- with millisecond-level timing precision

This just seems silly to me. If you're controlling HTTP subdomains & any
sites the end-user is visiting, this seems like it's simultaneously the most
complex and also most meaningless attack you could mount.

Signed-off-by: Nick Semenkovich <semenko@alum.mit.edu>
[OpenStreetMap] add blog
[OpenStreetMap] stop excluding /edit
see: http://git.openstreetmap.org/chef.git/commitdiff/ff031b70b7a3e449210beded7d1a74931a564de9
https://github.com/EFForg/https-everywhere/pull/158#issuecomment-36115707
[OpenStreetMap] add nominatim
[mathjax] Add this for now so TeX works on StackExchange