add lang/toNumber and improve all "number" modules

will avoid headaches/unexpected behavior.

closes #116