Remove support for {return,native,concrete}Type overrides in Bindings.conf.

We have no reason to support non-default type names, and this commit corrects
the computations for callbacks (which needed the override until now).
Make Event::new take enumerated values instead of booleans (fixes #3643)
use rust-encoding to correctly(?) set utf16 strings for cmdline args as expected
implement cef_string_utf8_to_utf16()
implement cef_string_utf16_to_utf8()
remove rust-encoding usage from cef
use enc.len() for cef_string_utf8_to_utf16 conversion size
Fix selection of fallback fonts. Fixes monospace fonts in rust guide.

Previously, any font template that could not be found would return
an item from the last resort font family. Now, the last resort font
family is only searched if the entire list of supplied font families
is empty.
handle str::from_utf8() failure, improve return calls
Expose user agent option to DOM navigator interface.
layout: Make content of `display: inline-block; overflow: hidden` visible.
auto merge of #3608 : glennw/servo/user-agent-navigator, r=Ms2ger

This also makes command line options available as a global. If we're happy with that change I will go through the rest of the code and update it to avoid passing and cloning the Opts structure.
layout: Store containing block inline-size separately rather than
writing it to a temporary location and overwriting it.

This makes layout more idempotent, which is important for incremental
layout.

Also converts `is_root` to a set of flags and fixes a `TODO` concerning
percentage inline heights of images.
auto merge of #3604 : pcwalton/servo/inline-block-overflow-hidden, r=glennw

Makes lots of GitHub appear.

r? @glennw
auto merge of #3632 : Ms2ger/servo/bindings-conf, r=Manishearth

We have no reason to support non-default type names, and this commit corrects
the computations for callbacks (which needed the override until now).
layout: Refactor inline layout to remove the code that tried to avoid
splitting fragments.

I don't think it will be possible to avoid splitting fragments in the
presence of `vertical-align`, because one `ScannedTextFragment` could
potentially be split into arbitrary many fragments, each having its own
vertical position that can influence layout of other fragments.

This code also removes parts of `Range` that were no longer used.
auto merge of #3631 : pcwalton/servo/idempotent-inline-size, r=glennw

This makes layout more idempotent, which is important for incremental
layout.

Also converts `is_root` to a set of flags and fixes a `TODO` concerning
percentage inline heights of images.

r? @glennw
auto merge of #3650 : pcwalton/servo/give-up-on-not-splitting, r=glennw

I don't think it will be possible to avoid splitting fragments in the
presence of `vertical-align`, because one `ScannedTextFragment` could
potentially be split into arbitrary many fragments, each having its own
vertical position that can influence layout of other fragments.

This code also removes parts of `Range` that were no longer used.

r? @glennw
auto merge of #3651 : ttaubert/servo/issue/3643-event-new-enums, r=Manishearth

r? @jdm
auto merge of #3659 : zmike/servo/embedding-encoding, r=SimonSapin

r+ @larsbergstrom ?