Add async support.
Now every ```It``` that receives a ```done Done``` parameter is expected to be async, which means that you either finish the test by calling ```done()``` or ```g.Fail()```
To do this, ```panic``` is not supported anymore, as go doesn't allow to recover panics from goroutines, being outside of a goroutine, which sucks.
So now everything relies on ```Fail``` function to mark if a test passed or failed.
All assertion libraries are expected to call ```Fail``` method.
Change travis to use latest go version
- Add sucessful test case for async test
- Make async test fail if done is called with an argument (just like mocha)
Change Done signature to make it mach Fail's. Also changed the way how done reports the error to the main program
Add isAsync flag to it as sync fail tests were failing due to runtime.Goexit()
Add check to see if done has been called more than once in async test
Forgot to commit some test fixes. And added done multiple times test
Change resolve stack depth as we've added new layers between goblin and the resolver
Merge pull request #28 from franela/async

Add async support.