added async tests using callback pattern. runsAsync.

I think callback-style tests would be a good addition to Jasmine. Jasmine already has async tests but they are based either on waiting a specified time, or continuously polling for a condition to be true.

This change adds a `runsAsync` method that is modeled after node.js style async functions. You pass `runsAsync` a function just like `runs`, but this time it takes a `callback` parameter. You call `callback()` when your async function is all done. If the first parameter you call `callback` with is not null, then the test will fail. 

Tests included in commit.