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.
Why did this get added _before_ the pre-existing params? I hate this function's parameter list and really want to stop piling more shit on to it. This may have to wait until we refactor this nightmare to accept an object of parameters, because FFS, what does this even mean: `doFunction(undefined, undefined, false, true, ...)` or `doFunction(undefined, undefined, true, false, ...)` (of course you know what it means, because you just worked on it, but no one else would know without digging through JSHint)