Type assertion: special API for function return type check

```js
function reverse(str): String {}

// before
function reverse(str) {
  return assert.type(str, String);
}

// after
function revers(str) {
  return assert.returnType(str, String);
}
```

There are some advantages of this approach:
- the assert library can show different error for return value (eg. "Function has to return x"),
- the assert.returnType() has to return the actual value, but assert.type() does not have to.
Type assertion: replace value types with assert.x

```js
function foo(a: string, b: number, c: boolean) {}

// transpiles into
function foo(a, b, c) {
  assert.argumentTypes(
    a, assert.string,
    b, assert.number,
    c, assert.boolean
  );
}
```