ECPair: replaces ECKey/ECPubKey

This is a `2.0.0` PR.

Mostly just wanted opinions on this design vs the original `ECKey`/`ECPubKey` design.
I personally prefer it, and the semantics are quite strong so despite the optional constructor argument either way; it does make life a lot simpler.

It also simplifies a fair amount of code IMHO.

Open to comments/discussion. @weilu, @jprichardson?
nit: assert is on line1 so no reason for ecurve to be down here. Also, we can skip `curve` by using `ECPair.curve` instead.