introduce Char type

Review by @garyb / @paf31 / @joneshf / @michaelficarra 
We should probably never use `*` dependencies in modules that will be distributed broadly like this one. It will make it impossible for people to create a reliable deployment (unless bower has something akin to npm-shrinkwrap?).