dicts: encode originallocation to avoid encoding problems

refs #6911
ReplacementDict: operate on all strings as str

This is consistent with the behaviour used in the transcoder module
before.

Because the %originalLocation% file variable can contain text of
arbitrary encodings (or even invalid combinations of encodings), it's
a minefield to try to interpolate its value into any unicode string.
Instead, handle all strings as bytestrings (encoding from unistrings
to bytestrings where necessary) and return str instances instead of
unistrings.

Consumers can convert back into unistrings, with the caveat that the
returned string is not guaranteed to be valid Unicode regardless of
the encoding of the source string.

refs #6911
normalize: replacement_dict should be ReplacementDict instance

Passing ReplacementDict instances into CommandLinker ensures that RD
instance methods are available there.

refs #6911
transcoder: use existing replacement_dict methods

Previously, transcoder was using its own implementations of a few of
the ReplacementDict methods. Instead, accept the ReplacementDict
instance passed in from the normalize client script and call its
methods.

refs #6911
dicts tests: SIP is usually assigned even for file-only