Replace flags.rs with stdlib bitflags macro

Closes #96.

**Breaking changes**
* The `Flags` trait is removed
  * Equivalent functionality can now be found on the bitflag types (eg `Flags::none()` is now `FlagType::empty()` and `Flags::all()` is now `FlagType::all()`)
* `Shl` and `Shr` are no longer supported operations on bitflag types
* The behavior of `Not` has changed. Instead of flipping all of the bits in the contained value, it only flips the bits that were used in the definition of the bitflag type.