fix bug with stale instructions after locale switch (w/tests)

this should fix the weird localization issues on instructions that have been reported.

the bug involved a localized string being incorrectly persisted across a view because the `local` hash was mistakenly a shallow copy from an instance variable.

@Bjvanminnen please test (try to reproduce the bug you noticed), @tobyk100 please review (affects level builder)