Pretty printing using Wadler/Lindig algorithm

A follow-up from the discussion on @manpages [pull request](https://github.com/elixir-lang/elixir/pull/1047). 

`wadler.ex` contains a strict implementation of the Wadler document algebra as described by [Lindig (2000)](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.34.2200).