HTTP request lib with flexible callback dispatch