Add a decode() function that looks for a BOM.

Only works with a single string entirely in memory.

This is part of #19,
although complete #19 would also support incremental decoding.
Merge branch 'decode-BOM' into decode-BOM-0.9, …

… and remove the back-ported .starts_with() method. It’s in libstd now.
Backport to the Rust version used in Servo.
Merge branch 'decode-BOM-0.9' into rust-servo