Fixed method existanse check

In CRUDController::batchAction was used method_exists() to ensure hook availability, which cause problems when actual hook hidden behind __call. I've replaced method_exists with is_callable to fix it and support __call methods. Appropriate test are fixed too.

@rande, don't you mind to include this fix in project?