Make scanner.Map a function; fixes custom Unicode bug

Instead of being a variable and only calling unicode() when started,
this needs to be a function and call unicode() every time it populates a
new map. Without this, adding unicode characters to Unicode would have
no effect.