[Props] Added the new TypeEx property and fixed Type

This PR fixes a long standing bug in the dleyna-server API.

The Type property is now consistent with the MediaServer2Spec Type
property.  This should remove the source of constant confusion and
fix a number of bugs, in for example the download sync controller.

A new property, TypeEx has been introduced.  TypeEx contains the
extended type information for an object, i.e., the value Type used
to hold, so if applications want the extended type they can still
retrieve it.

Both Type and TypeEx are searchable.  The superset of values specified
by TypeEx are permitted when creating a container, both in the type
of the container and it its create classes.

The extended type is exposed in the CreateClasses of a container and in
the LastChange event.

Type is no longer permitted in Update.  TypeEx must be used.

From an API point of view there are two breakagaes:

1. Applications that used Type to retrieve extended type information,
   need to be updated to use TypeEx.
2. Applications that updated the Type of an object will need to be
   updated to use TypeEx instead.

There is one slightly unpleasent hack required to report the correct
values for Search and Sort Caps.  A correct solution would require
making the p_map hash table many to many, which would result in a bigger
change.  I've left this improvement for another commit.

Signed-off-by: Mark Ryan <mark.d.ryan@intel.com>