Do not forward declare enum classes

Review 1256 by @srh
Closes #2016
Fixes for compiling on OSX

Review 1256 by @srh
Closes #2017