Don't add steps to scenarios with skippedByFilter.

Adding a step to a scenario that is
"skippedByFilter" can cause a crash if that
scenario has default tearDown steps because
insertion uses NSMakeRange(...) to decide, where
to insert into self.steps. When, skippedByFilter
the steps array is never initialized, so on first
inspection it may seem like the checks aren't
necessary, since we'd be messaging nil, but the
arguments of the message are still evaluated
causing a crash like so:

*** Terminating app due to uncaught exception \
'NSRangeException', reason: '*** -[NSIndexSet \
initWithIndexesInRange:]: Range {4294967294, 1} \
exceeds maximum index value of NSNotFound - 1'
Merge pull request #191 from jakerr/master

Crash fix: Don't add steps to scenarios with skippedByFilter.
Fix UITouch timestamp to match Apple's implementation.

The Apple docs explicitly say that their timestamp is based off of
-[NSProccessInfo systemUptime].

Please see:
http://developer.apple.com/library/ios/documentation/uikit/reference/UITouch_Class/Reference/Reference.html#//apple_ref/occ/instp/UITouch/timestamp

Using the timeIntervalSinceReferenceDate can cause interaction
with views that use the timestamp, to behave incorrectly while under test.
Merge pull request #192 from jakerr/touch_times

Fix UITouch timestamp to match Apple's implementation.
Merge remote-tracking branch 'upstream/master'

Merging with Square Master