Allow `less.modifyVars` option to overwrite variable before initial parse

When Set options in a global less object before loading the less.js script, `less.modifyVars` config option doesn't work as promised here:
http://lesscss.org/usage/#using-less-in-the-browser-poll
It will be useful when you want to modify variable before the initial parse.
This commit solved this issue.
Moreover, cache mechanism has been adjusted so that modified variables will be take into consideration when decide if cache should be used.
i.e. A less file will be only be re-parsed if it's modified or loaded with different `less.modifyVars` option