add thrift endpoint for querying file attributes in bulk
add thrift endpoint for querying file attributes in bulk

Summary:
update thrift interface to include a function that returns attributes for a given list of files.

to support this, we add several structures that define the functions parameters and return type.

- FileAttributes: a "bitmask" enum. Each attribute is a power of 2 to enable bitwise ORing attributes together to decide which attributes to fetch from files.
- FileAttributeData: struct to hold the attributes of an individual file
- FileAttributeDataOrError: union that is either a FileAttributeData or EdenError thrown when accessing the file attributes
- GetAttributesFromFilesParameters: self explanatory.
- GetAttributesFromFilesResult: self explanatory. Map of file -> FileAttributeDataOrError
- getAttributesFromFile(): actual function that will be implemented in EdenServiceHandler.cpp

Reviewed By: chadaustin

Differential Revision: D32155168

fbshipit-source-id: 6dd768f3bcee1e32a2362df231feebfb1297dbf6

facebook/watchman,nodakai/watchman,facebook/watchman,facebook/watchman,nodakai/watchman,nodakai/watchman,nodakai/watchman,facebook/watchman,facebook/watchman,nodakai/watchman,facebook/watchman,nodakai/watchman,nodakai/watchman,facebook/watchman,nodakai/watchman,nodakai/watchman,facebook/watchman,facebook/watchman