SgFieldSerializable now supports lists as a value

- SgFieldSerializable was coded for dicts only, updated to support
  list objects.
First pass at adding dry run ability to batch,commit,revive, delete

- All commit functions for SgEntity and SgConnection classes now have
  an arg "sgDryRun" that when specified as True will not push any
  changes to Shotgun but will trigger before and after commit calls.

  All before and after commit callbacks are passed the dry run value.
  This allows commit callbacks to not perform certain tasks, such as
  creating directories, when the commit is only a dry run.

  Dry runs can be executed for debugging and to check if callbacks
  will raise an error.