Fix Version.parse/1 specs

This resolves some dialyzer warnings from #1569, an example is:

```
lib/elixir/lib/version.ex:95: The call 'Elixir.Version':'match?'({'error',_} | {'ok',{'Elixir.Version.Schema',_,_,_,_,_,_}},requirement::any()) will never return since the success typing is ({'Elixir.Version.Schema',_,_,_,_,_,_},binary() | {'Elixir.Version.Requirement',_,[{atom() | tuple(),[any()],[any()]}]}) -> boolean() and the contract is (t(),requirement()) -> boolean()
```