Add support for setting multiple values at once in ViewHistory

Currently for every call to `updateViewarea`, `ViewHistory.set` is called five times, which means that the `database` is converted to a string and written to storage five times in succession.

This PR adds a method, `setMultiple`, that sets all values before the `database` is written to storage.

Generally the value of micro-benchmarks can be questioned, but to get at least some confirmation that this PR is meaningful I've tried comparing the current code with the code in this patch: http://jsperf.com/viewhistory.
Based on the consistency of the results across various browsers, it seems probable that this PR does reduce the time taken to update the history.