Make ErrorCollector#checkSucceeds() generic

This brings the signatures in line with others like Assert.assertThat.
Especially the checkSucceeds would be hardly usable in languages with target typing (Java8/Xtend) otherwise.
This should really be:

    public <T> T checkSucceeds(Callable<T> callable) {

.. because of the return type of Callable.call(). Stated another way, if you pass in a `Callable<Integer>` then the return type should be a `Integer`, not a `Number`