Small typos
Auto patterns must be arrays.
Added ipa::server::user, ipa::server::config and newer diff engine.

This patch could probably be split into separate pieces but we're in
hack mode, so why bother? It does however add some important pieces.

* The ipa::server::config type lets you set config options. Available
options are listed in the code. Some of these aren't enabled yet because
they weren't needed at the moment. Have a look at the code to see.

* The ipa::server::user type lets you manage users in the same style
that you used for managing hosts or services. Many admins will want to
use this feature for including their "core" administrative users, and
set user_excludes so that the rest of the database can be managed
manually. See the example for some hints on getting started.
Be careful not to wipe your user database! Test with --noop first :)

* The diff.py difference engine was essentially rewritten from scratch.
The original version was quite simply, a hack. It soon became too
crufty, and with the need to add more types such as user, a clean engine
was needed. All difference checking now happens with individual
comparator functions. They support function decorators to make it easy
to wrangle the arg data and the ipa to see if they are really different.

Please test extensively, and let me know how you like this code. Thanks!

James