Reformat Document using clang-format

http://clang.llvm.org/docs/ClangFormat.html

Passes `-style` argument using `TM_CLANG_FORMAT_STYLE` variable, defaulting to LLVM.
Support binary integer literals and digit separators

Example: 0b10000000'00000000'00000000'00000000

I rewrote the pattern to match integer literals so it’s stricter though will still match a partially typed number like ‘0x’ or one with a trailing digit separator (also considered partially typed), although here it marks the trailing separator as invalid.
Single quotes are not paired for integer literals

This way one can add the single quotes while typing without TextMate auto-inserting the end quote.

With a selection, single quotes are still paired (even when the selection is a string literal), assuming that people want wrapping rather than overwriting.
Add ‘thread_local’ storage modifier keyword to C++ grammar
Append -assume-filename=<path> to clang-format

This makes 'file' style to work, as clang-format needs to know file path to
resolve possible .clang-format style definition files placement.