Cleaned up Data.

- Use scoped enums.
- Added static creators for string literals.
Refactored use of enum as template parameter.
Workaround for YouCompleteMe failing to find C++ headers.
Refactored template parameter constraints.
Added script to generate .sublime-completions from doc/api.md.
Windows: Build fixes.

- Fixed a CMake warning (CMP0046) introduced in 3.0.
- Disabled max/min macros.