Making credentials optional for data sources

Username/password credentials are now optional
fields when creating a data source.  This is
possible because a fully updated sahara system
will use trusts to grant/revoke permissions
rather than passing around a username/password.

Change-Id: I7df556295e7e1b5c5e73230b294d4e8f8b7f05f3
Closes-Bug: #1367394
Fix policy check for subnet operation

Neutron policy has a policy to check a network owning a given
subnet, so we need a special handling for neutron subnet.

Change-Id: I0b31d8565228e37be06bb85c199ee31d3fe7f5cc
Closes-Bug: #1324634
Move datepicker language js inclusion outside compress

The datapicker language support works by including a different
js file based on the language of the user.  This will not
work if the js is included at compress time becuase only 1
language can be included.

Additionally cleaning up the logic in case the locale
isn't set (as is the case at compression time) to prevent
an improper path from being build.

Change-Id: I953dde0e7ee4a876376faf28c6f0bb859a3dc6b6
Closes-Bug: #1373430
Rename Extra Specs with Metadata in Flavors table

The 'Extra Specs' column heading in the Flavors table has been renamed
to 'Metadata' for consistency (for example, 'Update Metadata' form)

Closes-Bug: #1371251

Change-Id: Ibeb81167553b42f299613359dad49a9bff05fc48
Fix concatenation in data processing actions

Remove concatenation and pluralization issues from Delete Job,
Launch Job (incl Launch Job, Launch New Cluster, Choose Plugin,
Relaunch, Relaunch new cluster), Delete Job binary,
Delete Data source, Delete Template, Delete Job execution,
Delete Cluster, Unregister Image, and Delete Template actions.

Change-Id: Idb615f4e2830ea5d9ddd0f871bfb3d90854f45f5
partial-bug: 1307476
Checking session timeout before authentication

If both the keystone token and the session expired, the user was asked to login
twice. This is because the token expiration was not checked.
When a user had timed out both in session and keystone token validity, the user
was asked to log in, then the timestamp was checked, and the user logged out
again and asked to log in a second time.

We now check both the timestamp and keystone token validity before
authentication validity and force back the login page to retrieve a new
keystone token, avoiding the timeout race condition between session and token
validity which was forcing a dual login. A keystone token expiration is now
considered as a session timeout too.

Also, a page can start loading while the token is valid, and finish while it's
invalid. This was leading to errors during the page loading.
We now set a TOKEN_TIMEOUT_MARGIN period in seconds which allows defining
a margin before which we consider the token as expired.
This is a configurable parameter in the django settings because the time a page
takes to render is infra and deployment specific. This margin is preset to
ten seconds.

Requires: https://review.openstack.org/101556

Closes-Bug: 1308918

Change-Id: I0bf0d079a9dc000c1a30f0e20dcaa03b22d63e51
Merge "Fix policy check for subnet operation"
Merge "Move datepicker language js inclusion outside compress"
Merge "Rename Extra Specs with Metadata in Flavors table"
Merge "Checking session timeout before authentication"
Merge "Fix concatenation in data processing actions"
Merge "Making credentials optional for data sources"
Merge branch 'master' of https://github.com/openstack/horizon