Cleanup

As discussed on #13 and #14, this is a big cleanup of the library. It :

- removes all conditional forks between GMP & BCMath by wrapping the calls to either lib in adapter classes
- BREAKS BC : port all static methods to instance methods
- ports all "legacy" tests to PHPUnit test cases
- adds a few convenience methods to create objects
- adds some extra unit tests for some failing cases found during the refactoring

Since this is a breaking P/R and we are still using version major 0, we can tag ac7d4566d152e63ead3c481a181d304e8459eda5 as v0.2.0 and the result of this P/R as v0.3.0, but it implies that packages depending on dev releases will be broken (but technically, no production code should depend on dev packages). Or we can assume the API won't change much more and go for 1.0.0 straight away, I don't know.
This one doesn't matter, receivedPubPoint can (and must) only be null or a PointInterfae instance. I'll change it to strict comp for the sake of it :p