Added basic2d module

Module for basic 2d computation
Added file header
Some minor changes
Fixed stupid mistake when clamping acos
basic3d module and some fixes in basic2d

Added the basic3d module. Standard 3d maths but still reimplemented
evrywhere.
Some doc. fixes
Some minor fixes

Fixed som wrong spellings in cooments, reordering
some arguments to be mor uniform, and fixed a small bug in
isUniform for 3d matrix.
Forgot publicity star on symbol
glColor*v now accept vector as input (as in original lib)
Fixes xmltree <> macro docstring.
Adds equality comparison for arrays.
Experimental support for delayed instantiation of generics

This postpones the semantic pass over the generic's body until
the generic is instantiated. There are several pros and cons for
this method and the capabilities that it enables may still be possible
in the old framework if we teach it a few new trick. Such an attempt
will follow in the next commits.

pros:
1) It allows macros to be expanded during generic instantiation that
will provide the body of the generic. See ``tmacrogenerics``.
2) The instantiation code is dramatically simplified. Dealing with unknown
types in the generic's body pre-pass requires a lot of hacky code and error
silencing in semTypeNode. See ``tgenericshardcases``.

cons:
1) There is a performance penalty of roughly 5% when bootstrapping.
2) Certain errors that used to be detected in the previous pre-pass won't
be detected with the new scheme until instantiation.
pass-through of static int generic params to arrays when late instantiation is disabled
implemented and documented the new typedesc binding rules
parsing of user defined type classes
Removed outdated bootstrapping info from install.txt
fix parsing of ``proc foo(x: distinct Type)``
working code for simple cases of user-defined type classes
prevent eval crashes due to PContext-dependent ops not being available in evalConstExpr
Implemented ability to connect through proxies for the httpclient module.