Fix rendering of equipment without location info (fixes #69)
Merge pull request #71 from rowanthorpe/fix-rendering-non-located-equipment

Fix rendering of equipment without location info (fixes #69). Thank you!
ldapBackend.py: Do user.save() after user-create's add-group

* When a user doesn't exist and needs to be populated from ldap, the
  user.save() is located inside the conditional code for setting
  LDAP_AUTH_GROUP. This commit moves it after that so the save() always
  happens (even if LDAP_AUTH_GROUP is set in settings.py it might bork
  before the save() if the group doesn't exist).

* Also moved it and the user.is_active assignment to after the
  "user-exists" try-except block, to be more DRY
Merge pull request #68 from rowanthorpe/fix-ldap-user-creation

ldapBackend.py: Do user.save() after user-create's add-group

LGTM. As a side note, I will be visiting this backend a bit more soon. I already got some unit tests for it and will try to increase them both to increase code coverage as well as traverse unvisited code paths to expose bugs. Thank you
LDAP authentication unit tests

Using mockldap, add user authentication unit tests with LDAP backend
Also fix a corner case with the filter not having parentheses in the
ldapBackend which had mockldap complain.