Don't replace whole nodes when localizing nodes with overlays.

When using L20n DOM overlays, the source node gets replaced using
the replaceChild method on the parent node. This can cause problems
for some frameworks expecting to keep handle of their respective nodes,
this can break bound event handlers etc., especially in a scenario
where L20n document.l10n.localizeNode is fired asynchronously.

This commit changes the overlay feature to just replace node contents
instead of replacing the whole node.