can ommit "isa" key in spec object

When using the library I found myself creating lots of large validation objects typically looking like
```
{
    message: {
        isa: 'object'
    },
    author: {
        isa: 'object'
    },
    id: {
        isa: 'natural'
    },
    ts: {
        isa: 'number'
    }
}
```
This is great, but a bit too verbose, especially if there are lots of such code in one file. So I'd like to write it like this:
```
{
    message: 'object',
    author: 'object',
    id: 'natural',
    ts: 'number'
}
```

I've added a simple test, which doesn't cover all the scenarios, but I'd like to share the idea and know what you think. If that doesn't conflict with your vision, I can polish the pull request.