Append semicolon to item macro invocations in serde

Following changes in rustc.
Append semicolon to item macro invocations in serde2

Following changes in rustc.
Fix item macro invocation in benches

Following changes in rustc.
Replace TreeMap/TreeSet with BTreeMap/BTreeSet in serde

Follow rust std changes:
https://github.com/rust-lang/rfcs/blob/master/text/0509-collections-reform-part-2.md
Replace TreeMap with BTreeMap in the serde tests
Replace MoveItems and MoveEntries with IntoIter

Following a rust std change.
Replace StrAllocating with String type in function parameters

The key parameter of the insert functions are of type String now.
As insert requires ownership of its parameter `key` and StrAllocating
being gone in rust these functions now communicate that ownership
in their signature.

As a result &str must be converted into a String at the caller instead
of the callee.

The Trait ToOwned isn't an alternative as it's a generalized Clone.
StrAllocating simply has hidden an allocation or move.
Fix: Utf16 handling moved from std into unicode crate

Following a rust change.
Fix: String::from_utf8 changed function signature

Following a rust std change.
Silence deprecation warnings

str::char_len() is deprecated in favour of chars().count()
Fix: Append semicolon to item macro invocations in serde2

Following changes in rustc.
Replace TreeMap with BTreeMap in the serde2
Replace StrAllocating with String type in function parameters

The key parameter of the insert functions are of type String now.
As insert requires ownership of its parameter `key` and StrAllocating
being gone in rust these functions now communicate that ownership
in their signature.

As a result &str must be converted into a String at the caller instead
of the callee.

The Trait ToOwned isn't an alternative as it's a generalized Clone.
StrAllocating simply has hidden an allocation or move.
Fix: Utf16 handling moved from std into unicode crate

Following a rust change.
Fix: String::from_utf8 changed function signature

Following a rust std change.
Merge pull request #15 from tomprogrammer/rust-head

Follow rustc changes: Various fixes due to std api stabilization