Document set support

Add functions for BestMatchContentTypeId(), CreateDocumentSet() and a version of UploadFile() that allows you to specify the Content Type. The create methods return the Folder/File created, so that additional properties can easily be set.

Some additional cleanup around CreateFolder() and CreateList() to also return the created items, making them easier to use.