enable case insensitivity support (slightly) more generally
enable case insensitivity support (slightly) more generally

Summary:
Windows is also typically a case insensitive filesystem.  This expands
the name canonicalization checks that we had for OSX so that we can apply a
similar check/transformation on Windows.  This is also responsible for
rewriting short file names to long file names.

Musings: We should only observe short file names through injection from the
win32 dir watcher.  The name canonicalization executes a call to
FindFirstFile() under the covers, which is relatively expensive.  It would be
great to avoid this in the common case.  MSDN says that filesystems may have
mechanisms that encode short names in ways that are opaque to applications, so
we should not assume that 8.3 names containing tilde are the only way that a
short name may be represented.

We'll have to see how this performs in practice to see if we should consider
trying to optimize this.

Test Plan: arc unit

Reviewers: sid0

Differential Revision: https://reviews.facebook.net/D33015

twitter/watchman,amasad/watchman,masoncloud/watchman,masoncloud/watchman,dhruvsinghal/watchman,supriyantomaftuh/watchman,yangeagle/watchman,wez/watchman,nodakai/watchman,facebook/watchman,yun63/watchman,dcolascione/laptop-watchman,windofthesky/watchman,yonglehou/watchman,wez/watchman,yun63/watchman,kwlzn/watchman,kwlzn/watchman,michalliu/watchman,Jonekee/watchman,facebook/watchman,wez/watchman,yangeagle/watchman,wez/watchman,sdgdsffdsfff/watchman,yonglehou/watchman,sdgdsffdsfff/watchman,twitter/watchman,yun63/watchman,amasad/watchman,besarthoxhaj/watchman,webmasteraxe/watchman,masoncloud/watchman,dcolascione/laptop-watchman,bitemyapp/watchman,sdgdsffdsfff/watchman,besarthoxhaj/watchman,bitemyapp/watchman,yangeagle/watchman,facebook/watchman,hanhailong/watchman,sdgdsffdsfff/watchman,amasad/watchman,webmasteraxe/watchman,yonglehou/watchman,wez/watchman,windofthesky/watchman,supriyantomaftuh/watchman,wez/watchman,dhruvsinghal/watchman,facebook/watchman,yonglehou/watchman,hanhailong/watchman,yun63/watchman,wez/watchman,yangeagle/watchman,kwlzn/watchman,michalliu/watchman,kevinsawicki/watchman,montogeek/watchman,nodakai/watchman,dhruvsinghal/watchman,twitter/watchman,dcolascione/laptop-watchman,facebook/watchman,supriyantomaftuh/watchman,bitemyapp/watchman,wez/watchman,yangeagle/watchman,webmasteraxe/watchman,dhruvsinghal/watchman,facebook/watchman,kwlzn/watchman,dhruvsinghal/watchman,bitemyapp/watchman,dcolascione/laptop-watchman,besarthoxhaj/watchman,kevinsawicki/watchman,webmasteraxe/watchman,nodakai/watchman,windofthesky/watchman,michalliu/watchman,bitemyapp/watchman,montogeek/watchman,kwlzn/watchman,yonglehou/watchman,bitemyapp/watchman,kevinsawicki/watchman,dhruvsinghal/watchman,webmasteraxe/watchman,michalliu/watchman,montogeek/watchman,besarthoxhaj/watchman,dhruvsinghal/watchman,hanhailong/watchman,facebook/watchman,nodakai/watchman,yonglehou/watchman,masoncloud/watchman,yun63/watchman,windofthesky/watchman,facebook/watchman,michalliu/watchman,wez/watchman,supriyantomaftuh/watchman,Jonekee/watchman,yangeagle/watchman,besarthoxhaj/watchman,amasad/watchman,yun63/watchman,kwlzn/watchman,Jonekee/watchman,yun63/watchman,dcolascione/laptop-watchman,amasad/watchman,yonglehou/watchman,hanhailong/watchman,Jonekee/watchman,supriyantomaftuh/watchman,bitemyapp/watchman,bitemyapp/watchman,amasad/watchman,sdgdsffdsfff/watchman,masoncloud/watchman,dcolascione/laptop-watchman,nodakai/watchman,masoncloud/watchman,windofthesky/watchman,yonglehou/watchman,hanhailong/watchman,Jonekee/watchman,facebook/watchman,michalliu/watchman,montogeek/watchman,windofthesky/watchman,montogeek/watchman,dhruvsinghal/watchman,twitter/watchman,masoncloud/watchman,kevinsawicki/watchman,besarthoxhaj/watchman,montogeek/watchman,amasad/watchman,hanhailong/watchman,supriyantomaftuh/watchman,Jonekee/watchman,twitter/watchman,nodakai/watchman,dcolascione/laptop-watchman,montogeek/watchman,kevinsawicki/watchman,besarthoxhaj/watchman,yangeagle/watchman,twitter/watchman,michalliu/watchman,webmasteraxe/watchman,dcolascione/laptop-watchman,windofthesky/watchman,twitter/watchman,nodakai/watchman,michalliu/watchman,hanhailong/watchman,nodakai/watchman,hanhailong/watchman,montogeek/watchman,kevinsawicki/watchman,kevinsawicki/watchman,twitter/watchman,amasad/watchman,sdgdsffdsfff/watchman,kwlzn/watchman,yun63/watchman,supriyantomaftuh/watchman,supriyantomaftuh/watchman,sdgdsffdsfff/watchman,masoncloud/watchman,Jonekee/watchman,webmasteraxe/watchman,Jonekee/watchman,besarthoxhaj/watchman,nodakai/watchman,sdgdsffdsfff/watchman,webmasteraxe/watchman