BitField additions and fixes

This branch
* Adds an explicit evaluation function for BitField objects for convenience (calling this method is sometimes easier than a cast, e.g. when the underlying BitField type is a enum with nested scope)
* Fixes a critical issue which quickly could lead to bugs, as explained in https://github.com/dolphin-emu/dolphin/pull/483
* Adds a static_assert to make sure the types used as underlying BitField types can safely be used as such.
* Adds a cast to make sure enum values are casted to integers before performing arithmetic on them.