Paypal fork

Some clean-up and minor changes to make sure that all tests run fine. I also added a new command-line command "--enable-remote" to run the remote tests.
Not really, but to be honest, it doesn't matter that much to me.  If you're going to return null, `return null`, don't `return`.  Returning false or an empty string is just as well.  If you're going to have mixed return values, the documentation should reflect that.  As it is, the documentation is inaccurate.