Final overloads + default/override (fix issue #383)

Implement final by default.
Add ```default``` & ```override``` keywords for overload refinement.
```default``` overloads can be masked by subsequent overloads & overrides.
```override``` overloads mask previous definitions (equivalent to previous overload behaviour).
Add some tests.

Notes:

Searching for ambiguous overloads exposed an issue with builtin constructors. If a field type is an expression to be evaluated using pattern cells the default constructor will fail. A workaround is to use computed record which doesn't generate a constructor overload.

Updated test/lang/uncategorized/45 to use a computed record definition to prevent generation of a faulty built-in constructer.