CRAFTERCMS-402: Change template leaves fields from previous content type

The "Change Template" operation will not remove any fields
1) defined in forms
2) system fields (hard-coded in js): objectGroupId, objectId,
   folder-name, createdDate & lastModifiedDate
3) any fields defined as customFields (see below) in config.xml of
   each content type. removeOnChangeType = false means that the system
   should not remove these fields on change template.

<customFields>
  <field>
    <name>NAME</name>
    <removeOnChangeType>false</removeOnChangeType>
  </field>
</customFields>

Also, the user is warned about the possibility of data loss before
carrying out the template change.
Merge remote-tracking branch 'david/master'