Bitfield to bitflags

Attempt to solve #3690 

I've re-rolled the changes from https://github.com/servo/servo/pull/2610, and then doen the necessary updates to get this to compile with the current snapshot of rust.

The documentation for values I've added in the bitflag are missing, because I don't know what is the appropriate text.

@jdm @samlh lol. Sorry, now I see. Fixed.