simplify a bit using mechanicalsoup
rewrite tests with behave, increase support

- Restructure tests to use behave instead of lettuce
- Add another CLI test
- Reorganize HTTMock classes/function for maximal code reuse and clarity
- Make everything Python 3.x and PyPy compatible