WIP: Async/await

I thought I'd open a WIP PR of async/await support, so I could get some feedback.

I currently have it parsing successfully, but I have some questions/issues:

1. I'm unhappy with how I implemented async fatarrow functions, is there a better way to do this?
2. I'm slowly getting through the tests (I'll enable them as I fix them up), but I'm currently stuck on fat arrow the linter complaining - "'{a}' is already defined." - which I think is the function "name". 

    ```javascript
   /// How do I name a lambda?
    var l2 = async (a,b) => await a+b;  // '{a}' is already defined.
    var l3 = async (a,b) => await a+b; // '{a}' is already defined.
    ```

Any feedback would be appreciated.

(refs #1939)