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
more robust handling of proc signatures containing inter-param type references
use g++ and clang++ automatically when compiling to C++
handle arbitrary expressions dependent on static input params in proc signatures
make some tests green
make some tests red :) (i.e. print failure details while running the tester)