Switch to ldap.initialize() for AD backend.

The AD backend was still using the deprecated ldap.open() call. This is a
trivial change which switches it over to using ldap.initialize(), which just
takes a URI instead of host/port parameters.
Avoid showing change of password form if the auth backend doesn't support it.

If an authentication backend has supports_change_password set to False, the
account preferences panel still shows the form to change the password, while it
shouldn't be there.

The problem here is that the is_visible() implementation was located in the
wrong class. Instead of being in ChangePasswordForm, it ended up in
AccountSettingsForm, so that if the auth backend didn't have the ability to
change the password, it would instead prevent the user from changing their
timezone.

Testing Done:

Before: If you use a backend that has supports_change_password as False, your
/account/preferences page still has Authentication tab, which corresponds to
password changing. If you try to change your password, you get an error as
described in the bug. You can also notice that the settings bar went missing
for some reason.

After: If supports_change_password is False for your backend, the
Authentication tab isn't visible, and the Settings tab is back!

I also verified that nothing changed for backends that support password change.

Bugs closed: 3255

Reviewed at https://reviews.reviewboard.org/r/5797/
Merge branch 'release-2.0.x'
Allow users to add and remove widgets from the admin dashboard.

This is the second half of adding configurability to the admin dashboard. Users
can add widgets to their admin dashboard by clicking on "Add Widgets", which
will open a modal displaying a list of widgets that they can choose from. They
can remove widgets by clicking the X icon on the upper righthand corner of the
widget in question.

Testing Done:
Removed widgets and added them back to make sure that newly added widgets
appeared below the old widgets.

Reviewed at https://reviews.reviewboard.org/r/5622/
Merge branch 'master' into dev/push