Only yield from run_callbacks if there's a block to yield to

ActiveRecord 3.2 sometimes calls `run_callbacks` with no block. In this case we should just no-op and return, rather than yield anyway and raise a `LocalJumpError`.

cc @rtomayko