added "complete.error" event

- this allows a test suite to fail within a casper.run() onComplete callback
- rewritten some tests