add canonical name check to openFileHandle
add canonical name check to openFileHandle

Summary:
this is spiritually a copy of the is_basename_canonical_case function
from opendir.cpp but with a couple of differences:

* throws exceptions on error
* there is no windows version of this any more; it isn't needed due to
  our ability to directly access symlink files and get their canonical
  path.
* I've added a fallback for linux and BSD systems that does the obvious
  and slow readdir check to verify the name matches.

Reviewed By: farnz

Differential Revision: D5094975

fbshipit-source-id: a840a201b092e71de56178f868638183a184e667

nodakai/watchman,kwlzn/watchman,kwlzn/watchman,wez/watchman,kwlzn/watchman,facebook/watchman,kwlzn/watchman,facebook/watchman,nodakai/watchman,nodakai/watchman,facebook/watchman,nodakai/watchman,wez/watchman,wez/watchman,kwlzn/watchman,facebook/watchman,kwlzn/watchman,nodakai/watchman,facebook/watchman,nodakai/watchman,nodakai/watchman,wez/watchman,nodakai/watchman,wez/watchman,kwlzn/watchman,wez/watchman,facebook/watchman,wez/watchman,wez/watchman,facebook/watchman,nodakai/watchman,facebook/watchman,wez/watchman,facebook/watchman