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.
Show original statement if assert or refute fails

If the asserted statement evaluates to false, show the unevaluated
statement in the assertion error output message for more context about
the failure. Refute also now follows similar semantics.

Fixes #1276
Slight clean up on erlang tests
Merge pull request #1299 from vanstee/assert-statement-if-boolean

Show original statement if assert or refute fails
Fix typo on assertion message
Fixed typos in file.ex docs
Fixed ex_doc path in README