Type assertion: assert all arguments with assert.argumentTypes()

This is first part of the changes discussed in https://docs.google.com/document/d/1u2cBiLV2aCXnAwXJOPghtxWoikH9hY6enUI1AE4k4cw/edit?usp=sharing.


```js
function request(url: String, callback: Function) {}

// before:
function request(url, callback) {
  assert.type(url, String);
  assert.type(callback, Function);
}

// after:
function request(url, callback) {
  assert.argumentTypes(
    url, String,
    callback, Function
  );
}
```

Instead of asserting each argument on its own, we assert all of them. That has benefits:
- we can show all errors,
- we can show incorrect arg position.