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.
Add heredocs indentation test to DocTest
Make heredocs indentation test pass
Add mismatched indentation test to DocTest
Make mismatched indentation test pass
Add "too much" and "not enough" tests to DocTest
Remove unused variable from DocTest
Merge pull request #1593 from vanstee/string-justification-functions

Implement string justification functions