Remove some code duplication in the Compositor

It is possible to share the code which creates root layers.
embedding: begin cef string_multimap api

cef_string_multimap_alloc()
embedding: cef_string_multimap_size()
embedding: cef_string_multimap_find_count()
embedding: cef_string_multimap_append()
embedding: cef_string_multimap_enumerate()
embedding: cef_string_multimap_key()
embedding: cef_string_multimap_value()
embedding: cef_string_multimap_clear()
embedding: cef_string_multimap_free()
embedding: replace usage of deprecated find*() with get*()
Update behavior of Document.createElement

Fixes #4009.

Only lower-case the argument to Document#createElement if it's a HTML document.
wide form buttons fixes #3972
Implement DOMImplementation.hasFeature

Fixes #4010.
auto merge of #4029 : znewman01/servo/issue4009, r=Ms2ger

Fixes #4009.

Only lower-case the argument to Document#createElement if it's a HTML document.
auto merge of #4027 : znewman01/servo/issue4010, r=Ms2ger

Fixes #4010.

This is my first Servo contribution, so let me know if I missed anything!
Stop including the element during Element.getElementsByClassName.

https://github.com/servo/servo/issues/3995
auto merge of #4030 : achals/servo/master, r=Ms2ger

https://github.com/servo/servo/issues/3995

This is my first PR, so please let me know if I'm doing something wrong!
auto merge of #4031 : donaldpipowitch/servo/wide-form-buttons, r=jdm

My first pull request to servo \o/

Try to fix https://github.com/servo/servo/issues/3972. Tested with `./mach run tests/html/test-inputs.html`.
Any reasons why this CSS is formatted this way? (All properties on the same line. Looks a little bit _generated_?)
Remove bitfield! macro in favour of bitflags!