Better http package

- Separate APIResponse with json annotations
- Better interface to handler func
- Introduced `Test`, a combination of Bandit, Campaign