Write serpent

Should just overlap with the other pull request in `runtests.py`

Writes serpent, with bijection test again. Also does infix, only using parenthesis when needed, and choosing to do use whitespace for some and not other things.

It can output `for ... in ... : ...`, and `case ..: of ..: ... of:`(newlines omitted)