Allow trailing commas in bitflags! macro
Test attributes
Attach documentation to the bitflags! macro itself

This is in consistent with the style demonstrated in the std::macros module.
Use {} for bitflags! definition and invocations

This looks nicer because it reflects Rust's other syntactic structures.
auto merge of #16986 : bjz/rust/bitflags, r=alexcrichton

Closes #16469