improved and extended core-input tests

test if change and input events handlers are called
test if password attribute is applied
proper test if invalid and valid event handler are called instead of `logMessage`
this is a minor nit/suggestion:

Now that expectAsync can take closures with any number of args, you can use expectAsync directly here. For example you can replace:

```dart
    var changeCalled = expectAsync((){}, id: "change event handler called");
    var inputCalled = expectAsync((){}, id: "input event handler called");
    var model = template.model = new MyModel()
        ..changeHandler = (e) {
         changeCalled();
        }
        ..inputHandler = (e) {
          inputCalled();
        };
```

with:
```dart
    var model = template.model = new MyModel()
        ..changeHandler = expectAsync((e) {}, id: 'change handler')
        ..inputHandler = expectAsync((e) {}, id: 'input handler');
```

similarly in the `validate number` test further below.