Provisioning

1. Changes to UploadFile() so that it downloads the current file and compares a hash of the contents before uploading. The main benefit here is save creating multiple versions when there has been no change (only changed files are checked out/in). Parameter available to disable this and force the upload if required.

2. Add function to load an Elements XML file and parse the Module element to load Files. This is to allow porting of existing solution packages across to CSOM (just point at the elements.xml file). Only does modules so far, and doesn't support all properties.