add caching feature for bitcore.X requires

Normally when one loads the bitcore object, all classes are loaded into memory,
even if they are not used. This comment updates this so that the classes are
only required when they are actually used, preserving memory and making bitcore
as small and light for each project. This code is only relevant for node, since
the browser will have the ability to compile only the selected components.
Also, the Key class does not yet work with this, but everything else does.
fix the loading for Key.js

Now, like all other modules loaded in the bitcore object, Key is only required
when it is actually used. All tests pass in node and the browser.
remove unnecessary "buffer" from browserify.js
remove comment
fix address example by using bitcore.Address
Merge pull request #129 from ryanxcharles/feature/require-on-use

Require on use