Future should throw TimeoutException if get() timeout reached
Fixes #1789
Merge pull request #1787 from dmitry-treskunov/fix_future

Future should throw TimeoutException if get() timeout reached
Add missing classes