The addition of Python 2 means that we need to ignore the compiled
files that Python 2 creates which are not in the __pycache__
directory. This is added to the .gitignore file to make things
consistent.

To make the rest of the file clearer, the sections have been
annotated to show why they're being ignored.

A timeout-* rule has also been added, as this can happen when
there are hangs triggered by the fuzzer.

The .idea exclusion has been removed as it's not generated by
nor anything to do with the product. Users who have use editors
or tools which create files should use the global configuration
of their local system, rather than include them in the
project-specific .gitignore files.