Deprecate Dict.update/3 in favor of Dict.update!/3

A non-raising version that yields nil will be added in
upcoming releases.
Macro.unescape_binary -> Macro.unescape_string
Move from unicode to binary to String.from_char_list
Move from unicode to list to String.to_char_list
Update CHANGELOG
Do not compile behaviour docs if --docs is not set
Return an empty string from slice with valid index

To keep in line with ruby semantics of
[`String#slice`](http://ruby-doc.org/core-2.0/String.html#method-i-slice)
slice should return an empty string instead of nil when the starting
index is valid even if the length is 0.

Fixes #1591
Implement rjust and ljust string functions

To provide string justification, the following functions were
implemented:

  * `String.rjust/2`
  * `String.rjust/3`
  * `String.ljust/2`
  * `String.ljust/3`
Include documentation for justification functions
Do not truncate strings when justifying
Only accept a single character as padding
Add example to Enum.take docs using negative count.
Merge pull request #1596 from chrismccord/improve_enum_take_docs

Add example to Enum.take docs using negative count.
Merge pull request #1593 from vanstee/string-justification-functions

Implement string justification functions
Update CHANGELOG
Review and deprecate list <-> binary conversion
Quote arguments on elixir/iex help check
Improve docs for iolist_to_binary
Add Path.relative_to_cwd and rely on it when generating stacktraces
Clean up and expose are more complete API in Exception