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
Experimenting an alternate way of reducing execution time from WebVariablesMap - entrySet() and size() still hotspots.
Merge pull request #320 from jkuipers/web-variables-map

WrappingVariablesMap
Merge branch '2.1-master' into 2.1-dev
Added variable removal support to WrappingVariablesMap, improved code style.
Minor code improvements on WrappingVariablesMap
Updated ChangeLog.
Updated to properly handle the newly introduced targetRemovedKeys fiels.