Add testing support for appenging.Timeout calls

Using appengine_internal is bad, but [per David Symonds](https://groups.google.com/forum/?fromgroups=#!topic/google-appengine-go/laOsfI1dSGY), this usage of appengine_internal is supported and encouraged.

Given that Google is supporting this type of integration and I'm planning to do additional concurrency/timeout code, I wanted to revisit this decision.  Having unit tests will give me a much larger level of comfort that my implementation is correct and any future bug fixes will not create unknown regressions.

I have modified this branch to use only the exact portions of appengine_internal that David references and am no longer re-using the appengine_internal.CallError struct.  This should merge cleanly after if/when #21 is merged in.

If this is not merged, I'll *try* not to mention it again but I'm not making any promises :)