Helper class for internal use only. This allows to call a given method and
 convert the result to a boolean. It will do this by caching the method call
 as well as the "asBoolean" in 
CallSiteArray fashion. "asBoolean" will not be 
 called if the result is null or a Boolean. In case of null we return false and
 in case of a Boolean we simply unbox. This logic is designed after the one present 
 in 
DefaultTypeTransformation.castToBoolean(Object). The purpose of
 this class is to avoid the slow "asBoolean" call in that method. 
 
 The nature of this class allows a per instance caching instead of a per class
 caching like the normal 
CallSiteArray logic.