Update __eq__ methods on various objects

This pull request started with a mention in #132.

Basically, these commits update equality testing to `None` on various PyVCF objects to be more sensible. Instead of raising a `TypeError`, these objects now always return `False` when compared against `None` (because nothing equals `None` except for `None` itself).

Behavior for other comparisons (e.g. less than, greater than) is still left unchanged because `TypeError` is an appropriate response in those cases.

Related to this, I also updated the test in #132. I think it's more sensible this way since we can clearly see with different ways of saying whether two records are equal, we get different number of overlapping and distinct records.

Tests for this new behavior have also been added (albeit not that much, only for `_Record` and `_Call`). I think this should be ok for now.