Initial draft of budget schema
Complete budget schema definition

In order to use xml namespaces properly, two elements had to have
their namespaces changed: ub:estimate and ub:rule. They would have
to be estimate:estimate and rule:rule in order to pass xml schema
validation.
Use proper namespaces in output budget XML

In order to define an XML schema that could be used to validate the
output budget files, two elements need to use a different namespace.
All elements previously ub:estimate need to be estimate:estimate,
and those previously ub:rule need to be rule:rule.

Since the budget XML reader does not care about namespaces, files
written with the old namespaces can still be read by UnderBudget,
and upon save will have the new namespaces.
Add budget version restriction to XML schema

This will allow the schema to validate only version 5.0 and above.
As the budget format changes, this schema should be updated to
maintain compliance.

If a non-backwards compatible change is introduced (i.e., version
6.0), then the schema needs to be updated for that change and the
allowable version increased to 6.0. Anyone wishing to validate 5.x
would need to obtain an older copy of the schema.
Clean up XSD files
Write unit test for schema validation
Merge branch 'task/schema' into qt-rewrite