Add pretty printing library to Elixir stdlib
Tests for wadler; Guards for primitive types.
Merged (Fri May 10 06:22:13 EEST 2013)
Put pretty printing library into core
Binary.Inspect now uses pretty printing library
using Lindig's strict pretty printer

* Implemented Wadler document algebra with explicit groups, meaning
  that a break should be rendered to a linebreak or a space as
  specified by a mode: `Flat` or `Break`.
* This algorithm reduces the search space for document layouts, as
  no `best` function is used to search lazily over layouts with a
  flat or newline breaks.
adapted IO.inspect calls to Lindig interface

* group1 and line functions were changed
* relying on `surround` helper
* using a default identation of 2, this should be an option?
Optimizing string concatenation calls on wadler.ex

* Modified render method to render sdoc records to a string list
  followed by a Enum.join call.
Merge remote-tracking branch 'upstream/master' into wadler-lindig

Conflicts:
	lib/elixir/lib/binary/inspect.ex
	lib/elixir/lib/kernel.ex
using iolist_to_binary over Enum.join on wadler.ex

* iolist_to_binary assumed to have better performance.
adapted wadler.ex unit tests to current interface
adjusting nesting tests and behaviour on wadler.ex

* surround/3 function aware that nesting only adds spaces after a
  linebreak
* nesting tests should force Break format mode, as Lindig pretty
  printer defaults to Flat printing for small strings.
stripped spaces from record pretty printing

* brackets are not followed/preceded by spaces when inspecting.
adjusting failing tests relying on inspection

* some test cases rely on result from the inspection functions.
  Those were adjusted based on the current result of the inspect
  function, but a more clever method of comparing the result may
  be needed if changes on the tests recur.
Update CHANGELOG
Validate eval options, closes #1238
Add `binding/0` and `binding/1` for retrieving bindings
Catch invalid arguments for binding/1
Some IO tests return alternate error codes on windows

Now these tests allow different kinds of error codes. However, I currently
duplicate the is_io_error? method; I would assume there would be an easier
way to do this; maybe just put it in a namespace and reference the
namespace?
Merge pull request #1277 from ToJans/WindowsBugfixing

Some IO tests return alternate error codes on windows