Add base Enum class

Signed-off-by: John McCutchan <john@johnmccutchan.com>
Create PrimitiveTopology enum

Signed-off-by: John McCutchan <john@johnmccutchan.com>
White space

Signed-off-by: John McCutchan <john@johnmccutchan.com>
Refactor BlendOperation and Blend to use Enum class

Removes lots of duplicate code.

Signed-off-by: John McCutchan <john@johnmccutchan.com>