Refactor ty_str to use a ~(str) representation.

Similar to my recent changes to ~[T]/$[T], these changes remove the vstore abstraction and represent str types as ~(str) and &(str). The Option<uint> in ty_str is the length of the string, None if the string is dynamically sized.