Issue title: Add Regex.escape
 Issue body: Say I have some string that I want to literally interpolate into a regex:

``` elixir
regex = %r/#{mysterious_string}.../
```

If `mysterious_string` contains any regex ops, this will end up badly. Regex could have a function that would escape all regex characters to make the string match literally:

``` elixir
regex = %r/#{Regex.escape(mysterious_string)}.../
```

 Comments: 
 Comment 0: I have renamed it to `Regex.escape`, everything else, :+1:.

 Comment 1: As far as I can tell, Erlang does not provide such functionality.

I'm marking this as _starter_. The algorithm itself is quite simple: scan through the string's characters and prepend a slash to each non-alphanumeric character. This follows from the following statement:

> For example, if you want to match a \* character, you write \\* in the pattern. This escaping action applies whether or not the following character would otherwise be interpreted as a metacharacter, so it is always safe to precede a non-alphanumeric with backslash to specify that it stands for itself. In particular, if you want to match a backslash, you write \\.

Here's a reference implementation in [Python](http://svn.python.org/view/python/trunk/Lib/re.py?view=markup#l206).

We might also need to come up with a bunch of tests for various edge-cases (some tricky unicode chars? obscure metachars?).

See [this](http://www.erlang.org/documentation/doc-5.7.4/lib/stdlib-1.16.4/doc/html/regexp.html) and [this](http://www.erlang.org/doc/man/re.html) for the complete reference of regular expressions in Erlang.

 Comment 2: I'm taking this, but there's no need to escape every `[^\w]`.

 Comment 3: Current implementation fails with the `x` option which ignores whitespace and `#`.

Try

```
"\\A  \\z"   =~ %r/#{Regex.escape("\\A  \\z")}/x
# or
"\t\n"   =~ %r/#{Regex.escape("\t\n")}/x
```

we need to either include all whitespace characters [defined in Unicode](http://en.wikipedia.org/wiki/Whitespace_character#Unicode), or escape all non-alphanumeric characters like was initially proposed, to future proof the implementation.

 Comment 4: @meh ^

 Comment 5: Patch incoming.

{'source': 'GithubIssues', 'repo_name_with_owner': 'elixir-lang/elixir', 'issue_id': 14918938, 'repo_stars': 20938.0}