SgField validate changed to no longer call setValueFromShotgun()

- validate() will no longer call setValueFromShotgun(), instead it will
  call _fromFieldData().

  The old way was messy and caused issues with changed() which meant
  validation had to be tracked.

Added forReal debug printing in validate

- validate() now debug prints the value of forReal.

Removed debug print statement left in previous commit.

- Removed a print statement that was left in during a pervious commit.
SgEntity.buildUserFields removed

- buildUserFields() has been removed as it was redundant and no
  longer needed.

  Classes can now implement _buildFields() without having to carry
  the burdon of building all fields for the Entity.

Added new fieldValues() arg "sgSyncFields"

- SgEntity.fieldValues() now contains a new arg "sgSyncFields" that
  is passed to each Entity field that will have its value returned.

Removed internal var SgEntity._createCompleted

- No longer needed due to SgField updates.

Moved SgEntity._hasBuiltFields to a private var

- Now is a private var for Entity class.

  SgEntityClassFactorys no longer set this value as the SgEntity
  buildFields() function sets it now.

SgFieldEntity updated to support a dict passed in arg "sgSyncFields"

- SgFieldEntity now supports a dict being passed as its arg for
  "sgSyncFields".

  This allows it to support the update above to fieldValues()