Add TSAN annotation macros for shared mutexes
Add TSAN annotation macros for shared mutexes

Summary:
This change is part of a bigger effort to make `folly::SharedMutex`
compatible with TSAN so that TSAN can find lock inversions with these
types of mutexes.

In order to do this, we need to annotate the mutex function calls
accordingly. The annotation functions are provided by the TSAN
runtime library.

Upcoming changes to `folly::SharedMutex`:

1. provide annotation helper macros (this change)
2. fix or suppress known issues in existing libraries (these macros will allow us to suppress issues)
3. once all the issues are fixed, annotate `SharedMutex` accordingly

Reviewed By: nbronson

Differential Revision: D9797582

fbshipit-source-id: 12306db98505fe31a8d8590113d10585840fbe6d

facebook/folly,facebook/folly,facebook/folly,facebook/folly,facebook/folly