ECDSA cleanup  

This pull request completely restructures the `ecdsa` module to force users to always provide EC parameters.
This was previously ignored, and the entire `ecdsa` module was inherently only usable for the `sep256k1` curve.

It also makes a few changes so that all functions have consistent parameter ordering, and the need to deal with serialized signatures is only forced on the user if they specifically use the serialization function (`ecdsa.sign` now returns the signature `r, s` values specifically).

Lastly, it correctly uses `ec.multiplyTwo`, which is the working equivalent of `implShamirsTrick`, and is by default shipped with `JSBN`. 

It is advised to review this commit by commit, as 3a46e341e642807d moves a lot of the functions around and is difficult to review.

Comparison link: https://github.com/dcousens/bitcoinjs-lib/compare/ecconst...ecclean