change non-Unicode chars to private-use [fix #24]

Change non-Unicode characters to private-use characters, which are internally
used as placeholders. The old ones caused bug #20, which required a hacky
workaround on old Perls.
create package for common constants [fix #25]

internal placeholder constants $N, $M, $P, $C, $M, and $Q