Fix a bug for handling chpl__tryToken in functionResolution

When rolling back the callStack in functionResolution after a resolution fails
in the then side of a chpl__tryToken conditional, stop if the callStack becomes
empty.

Added a test that causes a compiler segfault without this change because the
callStack becomes empty and then a function is called on the tail of the empty
stack.
Add a test of chpl__tryToken that fails to resolve on both branches

Failing on both branches results in an unresolved call error.  Adding this
test was a recommendation from my reviewer (hildeth).
Improve a comment near tryToken handling code to explain what the tryToken does

Reviewer @hildeth suggested improving on this comment.
Merge pull request #662 from daviditen/callStackBackupOnTryFail

Fix a bug for handling chpl__tryToken in functionResolution
[reviewed by hildeth]

When rolling back the callStack in functionResolution after a resolution fails
in the then side of a chpl__tryToken conditional, stop if the callStack becomes
empty.

Added a test that causes a compiler segfault without this change because the
callStack becomes empty and then a function is called on the tail of the empty
stack.  Added another test showing what happens when both sides of a
conditional using a tryToken fail to resolve (unresolved call error).