Added a IpAddress structure to the net module
Use character ranges from strutils.
$ for TIpAddress now prints in the recommended format
raise exceptions through newException
Provide zlib version explicit on Linux.

- workaround for Gentoo (#987),
- also, it's a good practice to provide ABI version in calls to dlopen,
so if zlib ever changes ABI, wrappers won't break siliently.
Adds example to likely/unlikely docstring. Refs #983.
fixes #993
Add token position to `nimrod scan`

A block of the format "linenum:col\t' is added to the start of each token that is printed.
File descriptors are now removed from fds list explicitly in close().

Fixes tasyncawait on linux.
Fixes compilation of asyncio2 on Windows.

Added a close(PDispatcher, TSocketHandle) implementation which unregisters
the handle.
Make the IP address exceptions more detailed
Merge pull request #972 from Matthias247/ipaddress

Added a IpAddress structure to the net module
PFuture[void] now works.

Return types can also be completely ommitted. PFuture[void] will then be
implicitly deduced.
grammar fix: allow free-standing expressions such as type(foo) is bar
allow multi-line expressions using the dot operator

this enables parsing of expressions like:

``` Nimrod
s.items
  .map(proc (x): auto = x * 2)
  .filter do (x) -> auto:
    return x % 2 == 0
  .group_by((x) => x.length)
```
fix #715 again

the regression was caused by the introduction of "generic" lambdas
fix #1001
first phase of tyGenericParam reforms needed for static params
fix #996
fix #997