(maint) Update for Elixir 0.15.0

Prior to this commit, ExIrc.Utils.parse_from/2 used Regex.split with
captures; however, this functionality has been removed from Elixir
0.15.0.

For example, `Regex.split(~r/(!@\.)/, "n!u@h.n.tld")`
in Elixir 0.14.3 would yield
`["n", "!", "u", "@", "h", ".", "n", ".", "tld"]`
however, in Elixir 0.15.0, this yields
`["n", "u", "h", "n", "tld"]`

This commit works around this functionality by using explicit regular
expressions for each of the cases, pulling out each of the fields into a
named capture map and relying on the truthiness of the capture map to
trigger a condition match.