add a more generic way to chain Callable with different input/output types
make the CallableChain a proper class
rename HttpTask to AsyncTask as it may not always just be a HTTP task