I think I fixed the issues with #45. Just making the utility functions local to the wrapping function in `lib/messageformat.dev.js` wasn't enough since `new Function()` doesn't end up in its calling scope, as I'd assumed. Hence the solution's a bit different.

The output of `compile()` is now independent of all external factors, as the utility functions are explicitly included in its scope. Calling `toString()` on its results isn't quite enough to create portable code, though; you need to include the output of `MessageFormat.LocalFunctions()` as well. Technically that could be fixable, but I'd recommend not doing so, as it would encourage duplicating code.