Make asyncJS distinguish between timeout and null return

When the javascript function passed to asyncJS calls the callback
with no parameters, webdriver interprets this as a JSON Null return
value.  The asyncJS function would then parse this to Nothing, so that
it is impossible to know if the asyncJS function timed out or completed
successfully since a timeout is also signaled by Nothing.  Therefore,
when asyncJS completes successfully, force a Just.  This causes the Null
to become (Just Null) which can be distinguished from timeout.
Relaxed aeson and attoparsec versions
fix bug involving opposite behavior in waitWhile'
Merge pull request #21 from aycanirican/master

Relaxed aeson and attoparsec versions
Merge pull request #20 from wuzzeb/master

Make asyncJS distinguish between timeout and null return
Merge pull request #19 from zerobuzz/quickcheck

Quickcheck example usage.
Add SessionNotCreated constructor to FailedCommandType
Merge branch 'master' of github.com:kallisti-dev/hs-webdriver
Refactor waitUntil' and waitWhile'
Merge pull request #23 from plancalculus/master

Refactor waitUntil' and waitWhile'
export deleteCookieByName
rename waitFailure to waitEither, remove catchesEither and orphan Functor Handler instance
minor indentation fix in wait'
catch ScriptTimeout exception in asyncJS
update CHANGELOG; tag for 0.5.3 release
represent ChromeExtension with Text instead of ByteString
update CHANGELOG and bump version
split mkRequest into mkRequest and sendHTTPRequest to make internal functions more reuseable
document unit in timeout setters