improve consistency in existence functions

This commit does 3 small things:

1) Switch exists() to using === equality because:
  (a) Always using === is becoming a standard best practice, per Javascript: The Good Parts, etc. This implemetation exactly matches that used by CoffeeScript for it's existence operator.
  (b) It's internally more consistent, comparing truthy()

2) Switch firstExisting() to using exits() instead of re-implementing it, because this is functional programming, and it's called firstExisting, not firstNonNull.

3) Make it explicit that firstExisting will return undefined if no existing argument is found. This is more for readability, but may also protect against possible cross-browser bugs or compiler bugs.