Compiler flags for Clang cleanups
Set policy and cmake version specific to MacOS

@axelstudios you might want to cherry pick this since develop is
currently broken for standard linux installs
Move to OSCore for build folder.
Update more OpenStudioCore to OSCore
More OpenStudioCore->OSCore changes
Merge remote-tracking branch 'origin/develop' into BuildFolderNameCleanups

Conflicts:
	openstudiocore/CMakeLists.txt
Revert to cmake 2.8.11 requirement
Merge remote-tracking branch 'origin/develop' into BuildFolderNameCleanups
Fix line endings
Merge branch 'develop' into BuildFolderNameCleanups
Attempt enabling of linux ci with clang 3.5

[#79953916]
Merge remote-tracking branch 'origin/develop' into 79953916-EnableCI
Help find git/patch if installed only for current user
Merge branch 'develop' into 79953916-EnableCI
Merge remote-tracking branch 'origin/BuildFolderNameCleanups' into 79953916-EnableCI
Force off colorized clang output to help with CI

Will re-implement once the questions are answered
Rebuild forced
Enable forward declared enumerations.

IMPORTANT: Never include a .hxx file inside of a .hpp file. If you do,
it will cause a cascade of compile time dependencies. @axelstudios this
should probably be a rule in the coding standards document.

This was an attempt to speed up compilation for CI, but the change there
is pretty nominal, by utilizing forward declared enums:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf

It does, however, greatly speed up the re-compilation of the system
during an IDD change. On my system changing the IDD causes a 10 minute
compilation, down from 20 minutes before this change.

Implementation
--------------

* IddEnums.hpp

New file - contains static interface for IddObjectTypes and IddFileTypes
enumerations. The types are concrete and can be used anywhere and are
tiny.

* IddEnums.hxx

Reworked to now contain the actual enumeration values. So if you need to
access a value, say IddObjectType::OS_Fan_OnOff, you must include
IddEnums.hxx.

* IddFactory.cxx

Co-opted to also include the enumvalue-to-string portion of the
IddObjectTypes and IddFileTypes enumerations. This further reduces the
burden on the compiler for sheer number of bytes it must process.

Results
-------

Currently no .hpp files contain any .hxx file. This means that now when
the IDD changes, *none* of the moc_* files or SWIG bindings will need to
recompile, and only the files that actually use the enumeration values
will. No file that simply holds an IddObjectType or IddFileType will be
recompiled. As mentioned above, this is approximately a 2x build time
speedup.

Runtime
-------

For the normal case, there is no runtime change. However, this solution
also allows us to take advantage of the solution that @kbenne proposed,
when we choose to have a soft-link (if you will) with the IDD. For
example, some header files used to have code such as:

     #include "IddEnums.hxx"
     ImfFile(IddFileType type = IddFileType::EnergyPlus);

This code has been updated, in the interest of eliminating code
dependencies, to:

     #include "IddEnums.hpp"
     ImfFile(IddFileType type = IddFileType("EnergyPlus");

The IddEnums.hpp has all of the implementation necessary to do a runtime
lookup while avoiding the compile time dependencies.

I *strongly* recommend that this solution only be used in the very rare
case and the statically typed, compile time-checked version be used in
the normal case. The compile time version will have significantly lower
runtime overhead and will reduce the possibility of latent errors.

FYI: This branch has only been checked against clang-3.5 on linux so
far. CI will let us know how it fairs.
Enable PCH on Windows and Linux

[#79953916]
Work around bug in gcc

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49604