GMP, Service Injection and Benchmarks

Encoding/Decoding is now done through a service provider class which implements ServiceInterface. The Base58 class by default chooses between GMP and BCMath (in that order), or you can inject your own.

The included service providers (GMPServer and BCMathService) are tested and benchmarked.