Add WrappingVariablesMap, used when creating a defensive copy of the context variables.
This prevents many expensive calls to WebVariablesMap#entrySet from being made as part of copying its contents over to the new VariablesMap.
The implementation doesn't strictly conform to the java.util.Map contract, but neither does WebVariablesMap (these classes shouldn't have extended HashMap, really).
(cherry picked from commit f6150df)
Fixed JavaDoc links
Merge pull request #320 from jkuipers/web-variables-map

WrappingVariablesMap