Added SgFieldSchemaInfo.createSchemaData() refactored code

- Created a new function createSchemaData() that will return a proper
  schema info dictionary that can be used to create new field schema
  info objects.  Reduces the need to hand build the data dict objects.

  Code refactored to use the new call.
Added SgField.isUserField()

- Added SgField.isUserField() for easy checking that a field is a user
  one or not.

Added doc string for arg "sgSyncFields" to Entity fields value()

- The "sgSyncFields" arg for SgFieldEntity and SgFieldMultiEntity is
  now documented as to what it does.

First commit SgUserFieldAbstractEntity, SgUserFieldAbstractMultiEntity

- These two new classes are so that subclasses of user fields can
  return Entities as thier value without having to copy code from the
  main Entity and multi Entity field classes.

  All the conversion from a dict to an Entity object as well as async
  pulling are coded into the classes.

Added an example SgUserField called SearchExpressionField

- This example shows how to create a user field that performs a
  Shotgun search as its return value.