Transpose Command

I thought I'd take a crack at issue #47, and implement the transpose command. Feedback welcome, obviously.

Thanks!
It's correct in terms of contents, but I don't think the regions are what they should be?

According to this python one-liner in ST3
```python
v = sublime.active_window().active_view(); rs = v.sel(); rs.add_all([sublime.Region(0,0), sublime.Region(3,3), sublime.Region(5,5), sublime.Region(12,12),sublime.Region(20,20)]); v.run_command("transpose"); print([a for a in v.sel()])
```
the new regionset after running transpose should be:
```python
[(1, 1), (4, 4), (6, 6), (12, 12), (21, 21)]
```