Add Scripting.Dictionary branching

- Use compiler statements to use Scripting.Dictionary internally if available (improves Windows performance by ~3x)
- Add tests for errors thrown