Enable android build

This required that the use of std::future be eliminated in all cases where it is possible to do so, including unit tests, because the facility isn't available in the GCC version of the Android NDK.  Also removed were references to std::current_exception and std::rethrow_exception, as in the cases where these were used, the language feature "throw;" could be used instead.