Skip migrations that require LDAP if no LDAP.

Change-Id: I874e7555ac3ca670a94eb21f2c0ca05ef616b755
Fix various issues with the add person form.

Worst bug was initial password not being saved correctly.

Change-Id: Ia818e4cdb446043ed8650e8df825f444343dcc88
Fix add person link.

Change-Id: I71dd8c83a69e33fa12a8b2751136d35b8c2db101
python-cracklib is strongly recommended.

Required for strong password checking.

If it is not installed, strong password checking will be skipped.

Change-Id: I174a8fed3fe7677badc7cabd60c3d21ccec089af
Add warning to documentation.

Change-Id: If654d44cc3185e9036773b965ee96774956c84e2
Requires django 1.5

Change-Id: I7ab3955a6caa0764821f8a77eecd314bad147d47
Fix logic to validate usernames.

Will check existing accounts for clashes.

Will not generate error if renaming person with username to ABC and
person already has an account with username ABC.

Change-Id: I9823ef3006e0dcad01d2d71b40fee913a10266ba
Fix total counts for tasks.

Change-Id: I96bc12086d95874f0efed973f2e7db0df5ea9e1a
Added foreign_id and extra_data fields

The foreign_id field is supposed to be used to hold the account/group id
from the external datastore.  The extra_data field is a JSON field that
can be used to hold extra data specific to a datastore.

Change-Id: I4c06bea6adfbadc1c691392d3c4e3a0f860ed216
Abstracted out account edit form

The account edit form is now an extension of the datastore API, since
each account type is datastore specific.  The edit_form(account)
function in the datastore API will allow rendering of this datastore
specific form on person page without hardcoding the forms into the page.

This patch also adds a specialised template rendering tag that allows
the account object to return an unrendered template.  That is then
rendered using the {% inline_render form %} template syntax.

Change-Id: I64c7df9d51097fb81939913d8bc9722f10b98b3a
Allow configuration of username validation

This change introduces 2 new variables to the configuration
USERNAME_VALIDATION_RE and USERNAME_VALIDATION_ERROR_MSG.  The can be
used to configure the validation regular expression and to configure the
message that will be displayed.

Change-Id: Iae39aed0ac18b53e7ba015c99bd86dd017e7dd04