add __ne__ and __eq__ methods to RSA, DSA, and EC numbers classes

fixes #1449 

These probably need to be documented somewhere. Suggestions?
`NotImplemented` means that if the other side defines an `__eq__`, that
will be invoked, means if someone else wants to write a thing that compares
equal to us... for whatever reason... they can.

On Wed Dec 10 2014 at 4:01:33 PM Paul Kehrer <notifications@github.com>
wrote:

> In src/cryptography/hazmat/primitives/asymmetric/dsa.py
> <https://github.com/pyca/cryptography/pull/1514#discussion-diff-21649150>:
>
> > @@ -59,6 +59,12 @@ def __init__(self, p, q, g):
> >      def parameters(self, backend):
> >          return backend.load_dsa_parameter_numbers(self)
> >
> > +    def __eq__(self, other):
> > +        return self.p == other.p and self.q == other.q and self.g == other.g
>
> Any particular reason to do NotImplemented and not just False?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/pyca/cryptography/pull/1514/files#r21649150>.
>