Bug 784591. Just end the crashtest ownerdiscard.html after 30 seconds if the image doesn't get decoded. r=jdm

The test normally ends when the image is discarded. But there is nothing in the test that requires the image to ever be decoded. To properly test the original bug that this test is intended for we want the following sequence: imgRequestProxy::Cancel, imgRequestProxy::ChangeOwner, and then the image getting discarded. The cancel call makes it hard to get a full decode started, especially since it needs to happen before the ChangeOwner call which itself happens quite early. So it appears that there is no easy way to modify the test to keep this sequence of events 100% of the time.

However the test as it currently stands does indeed get this sequence of events most of the time, so it continues to test the right thing most of the time. The few times it doesn't test the right thing we can just move on.
Bug 784591. Part 1.5. Remove the SHOULD_BE_TRACKED bit and just always track non-null requests. r=joe,khuey

Also assert that the request is null when we do not track it.
Bug 784591. Part 2. Don't track images that don't have a frame created. r=jlebar