add `PointO` constructor for infinity point

`point_x` and `point_y` for `PointO` don't make sense.
`CurveF2M` -> `CurveF2m`

I already used F2m in `crypto-numbers`.
Add `Signature`, `KeyPair` and `PublicPoint` to ECDSA
Add `Curve` accessor to common curve of F2p and F2m
Add enumerable deriving for `CurveName`

This makes test generation with variable curves easier.
Add missing curves
Polish documentation
Merge pull request #10 from jdnavarro/master

Changes needed for ECDSA