Allow filenames to occur 0 times

DFXML can also be used to distribute hash sets.  In this case, it may
not be appropriate to include filenames.  For instance, multiple
filenames may map to distinct hashes.
Allow fileobject/name_type to be optional

This element may be redundant in DFXML files that list only
regular files.
Move fileobject type definition to nameable complexType

xmllint fails to validate a schema where an embedded complexType
definition has a name attribute.  I know of at least one reason one
would want to specifically reference the type definition of a
fileobject, so I propose moving the type definition to its own
element.
Allow for extensibility in commonly-changing elements

As written, the DFXML schema allowed for no extensibility of elements,
including from new namespaces.  To allow a valid .dfxml file to include
non-"dfxml:" namespaced elements and attributes, the `<any>` element
must be included in the `<element>` definition.

The elements and attributes extended in this commit are the minimum
needed for differential annotations as idifference.py currently
generates.

Signed-off-by: Alex Nelson <a.nelson@prometheuscomputing.com>