DER format signatures

In the Great Crypto Update, I accidentally wronged the code that made signatures so that they weren't in proper DER format. This was causing signatures created by bitcore to be rejected by bitcoin-qt clients. I've fixed this by creating some new functions in common/Key that create and parse DER signatures in a very explicit and detailed way so that this particular problem doesn't arise again. I've also fixed a number of minor issues related to signatures and crypto, such as exposing the "sign" and "genk" functions in Key, and getting rid of the deprecated Curve class.

I found this thread helpful: https://bitcointalk.org/index.php?topic=653313.0

Closes https://github.com/bitpay/bitcore/issues/438