[WIP] Replace caller.h with std::function.

Exactly what it says on the tin.