Add Flags template

Flags is a typecons template for storing OR combinaton of enum values in a type safe fashion.

I think that the possibility to use bitwise operation on enums is a bit of a hole in D type system;
Flags provides a type safe alternative modeled after Qt's Q_FLAGS
Also, the square brackets around `EnumMembers!E` shouldn't be necessary; `foreach` will auto-expand at compile-time since `EnumMembers!E` returns a typetuple. It's not a big deal, though, since this is all done at compile-time anyway.