introduce Char type

Review by @garyb / @paf31 / @joneshf / @michaelficarra 
That's a good point. Generally we should be updating everything to use `^`-versions or something. Originally everything was `*` as we weren't making versioned releases.