Handle char incomplete_array[] cases.
replace ~str with StrBuf
rename StrBuf to String
to_owned() -> String has been deprecated
Bind opaque C types as empty enums.

This improves type safety (can't implicitly cast between two opaque types) and
disallows constructing them by value.
rename Eq to PartialEq
use rust-nightly again
fix build