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.