Added Grid Support for Candybean & CB-211: Need to create candybean.config for the tests

This PR is adding grid support for Candybean

- Added `GridInterface` and added grid parameters to `candybean.config` grid support
- Added `GridSystemTest` to test `GridInterface`. `gridsystemtest.config` is meant to be a unit test specific config file for `GridSystemTest`, so we would not get affected by changes in candybean.config in the home directory.
- CB211: The test system should not use the same configuration as the production's configuration. Therefore this is to address this problem by having separate configurations for the test system.
IMO if we have a specific standard exception occurring, it's better to throw it without wrapping unless we can gain information by wrapping it (e.g. include some info in the message on what Candybean was doing when the exception occurred).  If we throw MalformedURLException, the client code can catch that specifically and handle it appropriately.  If we throw CandybeanException, then the client code has to parse the message to determine what happened.  Therefore I think it would be more useful simply not to catch the MalformedURLException and add it to the list of Exception types the method can throw.

Opinions?