Added optional asyncawait support on top of esnext.

Seems to work, passes the test suite, works well with arrow function and classes. 

Configure like in the following:
```
"esnext": true
"experimental": ["asyncawait"]   or "experimental": ["asyncawait", "noawait"]
```

To try it:
```
npm install -g -f https://github.com/sebv/jshint/archive/esnextnext.tar.gz
```

EDIT updated options.
I've refactored the 3 methods into one, the whole thing is much shorted now.