Updated specs in Version

Addressing these dialyzer warnings:
```
version.ex:283: Invalid type specification for function 'Elixir.Version.Parser':parse_requirement/1. The success typing is (binary()) -> 'error' | {'o    k',[{{_,_,_,_},[any(),...],[any(),...]},...]}                                                                                                         
version.ex:292: Invalid type specification for function 'Elixir.Version.Parser':parse_version/1. The success typing is (binary()) -> 'error' | {'ok',{    integer(),integer(),'nil' | integer(),[any()]}}
version.ex:476: Clause guard cannot succeed. The variable _@1 was matched against the type integer()
```

The first two were caused by new return values (`:error` or `{:ok, value}`). The third by the fact that preceding functions guaranteed that the `minor` version value was always defined.

Also fixed some simple doc typos in a separate commit.