Minor english correction

[ci skip]
Merge pull request #1720 from edgurgel/patch-1

Minor english correction
Remove unecessary vars cache
Add a tricky pattern example for assert_receive
Kernel.raise should be a macro to avoid messing up the stack trace
Merge pull request #1726 from yrashk/raise-macro

Kernel.raise should be a macro to avoid messing up the stack trace
Merge pull request #1725 from alco/assert_receive

Add a tricky pattern example for assert_receive
Avoid calling Kernel:raise from erl
Improve guards on IEx.Helpers, closes #1535
Save typespecs attributes with proper line numbers, closes #1613
Support String.split with an empty binary as the pattern.

As discussed in #1688, currently the following fails:

    iex> String.split "abc", ""
    ** (ArgumentError) argument error
        binary.erl:242: :binary.split/3

These changes add support for an empty binary pattern, piggybacking on
the empty regular expression split (vs using `String.graphemes`,
notably) so that the function continues to support the `:global`
option.

Users should probably be using `String.graphemes` for splitting, but
this keeps the API consistent while fixing this exception.

Closes #1688.

Conflicts:
	lib/elixir/lib/string.ex
Ensure String.split/2 works with unicode
String module now depends on Regex module
explicitly use `Dict.size` rather than just `size` in `equal?`

Fixes bug where `true` was incorrectly returned for `Dict.equal?` when
the 1st argument was a subset of the 2nd argument.

e.g:
```elixir
iex> h1 = HashDict.new(foo: 1, bar: 2)
iex> h2 = HashDict.new(foo: 1, bar: 2, baz: 3)
iex> Dict.equal?(h1, h2)
true # OOPS
iex> Dict.equal?(h2, h1)
false # works as expected other way round
```

The code to check equality was checking size (incorrectly), and then
checking to see if every element in the first dict was present in the
2nd.

However, `size` was being used instead of `Dict.size`. This ended up
calling `Kernel.size` instead - and would always return `true`
regardless of whever the actual size of the `Dict` arguments were the
same or not.
Add validity checking for Inspect.Algebra documents
Merge pull request #1734 from madlep/fix_dict_behaviour_equals

`Dict.size` incorrectly returning `true` when left dict is subset of right dict
Merge pull request #1733 from meh/inspect-raise

Add validity checking for Inspect.Algebra documents
Move verify! to an is_doc guard in algebra
Deprecate Regex.captures and String.valid_codepoint?
Ensure &() works on blocks with one expressoin, closes #1704