Enforce low S values, by negating the value (modulo the order) if above order/2.

Reference implementation: https://github.com/bitcoin/bitcoin/blob/b7bba43a14a641b6b64bbf48357b2987c1b05800/src/key.cpp#L235-L238

ht @oleganza
Add godoc reference badge to README.md.
Setup TravisCI to report cov stats to coveralls.io.
Add test coverage badge to README.md.
Move test coverage badge to top of README.md.
Remove test coverage report refs from README.md.

This is no longer needed since the repository is now configured to work
with coveralls.io for test coverage reporting.
Use a more specific license adjective.
Use testable examples and update doc.go README.md.

This commit adds an example test file so it integrates nicely with Go's
example tooling.

This allows the example output to be tested as a part of running the
normal Go tests to help ensure it doesn't get out of date with the code.
It is also nice to have the examples in one place rather than repeating it
in doc.go and README.md.

Links and information about the examples have been included in README.md in
place of the examples and doc.go has been updated accordingly.
Correct verify signature example doco link.
Add test for private key serialization.

Also move private key tests to their own file while here.
Optimize ScalarBaseMult

Code uses the binomial expansion strategy which eliminates doublings.
All the basepoint doublings are computed beforehand to assist in the base multiplication.
Main function is computeDoublingPoints which computes all the doublings of the generator point G up to the size of the curve's bit size (for secp256k1, that's 256).

Also fixed a spelling error in a benchmark test.

Results so far seem to indicate the time taken is about half what it was before.

Closes #2