Create copy of scenario context before modifying

Currently ScenarioRunner.run actually modifies the context attribute of
the scenarion function, when that scenario is run. This could cause
differente behaviour on subsequent runs of a scenario. It also causes
problems in unit tests as sample data passed into run() gets applied to
the scenario function, which causes subsequent tests to fail.

This patch uses copy.deepcopy to take a copy of the scenario context
before modifying it.

Change-Id: I101ed35998d82f6dcf11e603b9b0cda97bf8dbb1
Closes-Bug: #1305783
Add integer and file validators

 * integer_range: Check an argument is an integer within the specified range
 * file_exists: Check that a file exists and can be opened

 These validators are used in the runcommand in instance benchmark
 (patch pending)

Change-Id: I379e2901f1c53018e41dd743bb2af29b4ed80f65
Create vm benchmark module

Change-Id: Id4a26ce8dbee58b3e1c95acd1e09b8deeb20613e

Conflicts:
	rally/benchmark/scenarios/nova/servers.py