Merge pull request #179 from dcousens/txscript

Transaction function naming and ordering
ECPubKey: improve tests and extract test data to fixtures

The use of fixtures allows for more behavioural driven tests and simpler
addition of more test cases in future.

However, as ECPubKey is just a wrapper around other strenuously tested
modules, the test data is currently limited to testing a subset of the
total wrapper.

This should probably be done better by using mocked out modules instead.
ECKey: remove *Buffer/*Hex functions

An ECKey is a composition of a private key (D), a public key (Q) and its
compression flag.

These functions gave the impression of serialization of this
composition, when really they only serialized `D`.
They have therefore been removed in favour of always using a sane
serialization format (WIF) that matches the needed behaviour.

If a user needs the previous functionality, simply use `privKey.D.*`
instead of `privKey.*`, as BigInteger supports `*Buffer/*Hex` functions
as expected.
message: remove signing verification

The signature verifications here are unnecessary, as this
is not what is under test.
message: support alternate networks
message: use base64 for signature data
message: remove unnecessary tests
Transaction: use the type embedded in the signature
crypto/ecdsa: moves HmacSHA256 to crypto
ecdsa: add serializeSigCompact and tests

This also adds tests for all other ECDSA serialize/parsing functions.
The k, r, s and D values were sourced from test vectors on
https://bitcointalk.org/index.php?topic=285142.40 .

The compact signatures (aka, i values) were generated from bitcoinjslib, but they
are straight forward anyway.
ec: add better test vectors for ECPointFp encode/decode

These test vectors were generated internally.
message: use serializeSigCompact
ec: getEncoded now uses Buffer API
ecdsa: parseSig now uses buffer API
ecdsa: parseSigCompact use Buffer API

parseSigCompact also now returns the correct recovert parameter without
the need to subtract the compression bit.
This makes it easier to use.
ec: decodeFrom now uses Buffers and handles errors
ec: use signum() not equals(BigInteger.ZERO)
ec: extract BigInteger constants
ec/dsa: extract P_OVER_FOUR as a curve specific constant

This actually resolves a possible bug if multiple ecparams were used
(aka different values for P_OVER_FOUR, but only the cached was used).
ecdsa: comment cleanup