Use staticEquals? in core/numbers to be sure no predicate loops are caused by static comparisons
add markers to lang/valuesemantics test

(to understand it easier)
sequence constructor API refactoring

Before this commit `Vector` functions were over-overloaded: call
to

```
Vector[T](a)
```

could interpret `a` as a sequence or as an element parameter. This
is over-overloading that make code harder to read and maintain.

This commit changes sequence construction API. New convention is
proposed:

Let `Foo` be sequence type.

Calls

```
Foo(arg)
Foo[T](arg)
```

assume arg is a sequence. Call

```
foo(..args)
```

interpret args as elements for new foo sequence. Latter call does
not work when args list is empty (because type parameter for `Foo`
cannot be infered and thus must be specified).

To deal with this issue, fourth constructor is added: with elements
passed in tuple:

```
Foo[T]([..args])
```

This patch changes vector, queue and deque.