reorganize tests

Move all tests into subfolders.

* lang             -- language and compiler tests, including __primitives__
* lib-clay         -- stdlib tests
* lib-clay/core    -- tests of core.*
* example          -- tests that are example of what is Clay capable of
* example/shootout -- moved from test/shootout

This is necessary to quickly find out which parts of the project
are covered with tests.

The downside of this separation is that sometimes tests of similar
entities lies in different folders, like lang/floats and lib-clay/floats.

Patch contains nothing but file renames. No test files are modified
or removed.
Merge pull request #399 from stepancheg/move-tests

reorganize tests
Closed variants

Closed variant cannot be modified with `instance` statement.

Variant is closed if declaration lists members. Example. Open
variant:

```
variant Exception;
instance Exception (IOError);
```

Closed variant:

```
variant Season (Winter, Spring, Summer, Autumn);
instance Season (OffSeason); // compile-time error
```

This patch is necessary to clearly distinguish library variants
that are designed to be extendable (like Exception) from variants
that have fixed number of instances by design (like Maybe).
Merge pull request #400 from stepancheg/closed-variant

Closed variants
printer.types: factor out printStringReprTo
printer.formatter: add stringRepr(s) formatter
bindgen: use stringRepr to print asm names
fixes #390
do not crash on unknown target
Provide better diagnostics why module is not found

Output may look like this:

```
###############################
import foo.bar.*;
-------^

main() {
###############################
./tmp.clay(1,7): error: module not found: foo.bar
tried relative paths:
    foo/bar/bar
    foo/bar
with suffixes:
    .macosx.x86.64.clay
    .macosx.x86.clay
    .macosx.64.clay
    .x86.64.clay
    .macosx.clay
    .x86.clay
    .64.clay
    .unix.clay
    .clay
in search path:
    /Users/yozh/devel/clay/lib-clay
    /Users/yozh/devel/clay/build/compiler/src/../../../lib-clay
    /Users/yozh/devel/clay/build/compiler/src/../lib/lib-clay
    /Users/yozh/devel/clay/build/compiler/src/lib-clay
    .
```
remove accidentally added include
Merge pull request #403 from stepancheg/import-debug

Provide better diagnostics why module is not found
Support StaticName and evaluation of enums
re #319. Pattern matches with enums do not work yet.
call initModuleSuffixes from main

... and crash early if suffixes cannot be initialized. Do not try
to load modules with incorrectly initialized module suffixes.
Fix pattern evaluation of enum members
Fixes #319
factor compiler into lib shared by clay + claydoc
Fixes #402
Flatten compiler/src -> compiler
Add test/example/helloworld
Provide a fake debug filename for -e modules
Union/struct type debug info with an empty filename is considered invalid by llvm::DIType::Verify().
Re: #354
Don't run if -e is used with -emit-llvm/-S/-c
This makes the LLVM or object code from a -e run available for debugging purposes.
provide location context while checking mono types
Fixes #279
printer.formatter: support hex([U]Int128)
Fixes #314. Octal and Windows support would require some additional work.