Updated broken Java 8 tests to use PromiseTimeoutExceptions

This fixes a bug with the Java 8 tests introduced in #1227. Also added migration docs to describe change, made exceptions work when using `F.Promise.recover` instead of `F.Promise.get` and added some extra tests.