Require on use

In node, in order to keep the memory overhead of bitcore low, we only want to require modules that are actually used. So to do this we replace the getters of all the bitcore.X classes with a function that only requires the class when it is accessed. That way the classes are not loaded if they are not used, and the memory overhead is kept low.

A similar feature is planned for the browser where we will compile only the modules that are directed to the browser bundle.