Added support for DER encoding to ECSignature

Ported this from [dartcoin.ECDSASignature](https://github.com/dartcoin/dartcoin-lib/commit/7164fafe05b9d02f0264bf5c12d3f384d61c8f82).

I implemented the decoding in a quite defensive way by checking validity and throwing a `FormatException` when something invalid is found. If you don't like this, feel free to omit the checks.

I also know you prefer to omit typechecks, so I used `var`'s instead :)