tests, fixes, py2/py3 compatibility
initial requests refactor

implements stuff mentioned in new Ruby SDK README (development branch),
some extras are implemented so current tests can pass.