Implement Integer.parse/2

**Motivation**

`Elixir` has `Integer.to_string/1` and `Integer.to_string/2`. 

`Integer.to_string/2` converts an integer to its text representation in a custom base. 
`Integer.to_string/` does that for base 10. 

The closest thing to an inverse function of `Integer.to_string` is `Integer.parse`. However there is only one version of it: `Integer.parse/1` which works only for base 10, which is odd.

This PR adds a `Integer.parse/2` function which can handle custom bases. `Integer.parse/1` just calls `Integer.parse/2` with base 10.

(`Integer.parse/2` accepts only bases in 2..36 and raises an ArgumentError when an invalid base is given. That way it's consistent with the behavior of `Integer.to_string/2`)

I didn't write it with a guard intentionally because `Integer.to_string/2` raises an `ArgumentError` for invalid bases and if I do it with a guard, `Integer.parse/2` would raise a `FunctionClauseError`. If that inconsistency is not a problem I would change it to a guard.