Alternative implementation of BlockingSupplier.

 It is simpler and doesn't suffer from race conditions. The new BlockingSupplierImpl is a drop-in replacement for the existing TimeoutBlockingSupplier class.

Also, added some javadocs to the BlockingSupplier interface. This change is not source compatible as it changes the public API: new BlockingSupplier methods declare checked exceptions.