[#35352681] Add /Groups endpoints as defined in the SCIM spec.

Initial commit that adds GET, POST, PUT, DELETE endpoints for listing, creating, updating
and deleting groups. Access control based on readers and writers for each group,
apart from the general scim.read and scim.write based access for the endpoints.

Exhaustive test coverage, and synchronization with user accounts (updating user.groups
attribute when group membership is touched) coming soon.

When users are bootstrapped, they are automatically added to the respective groups. No support
yet for bootstrapping groups.

Change-Id: I6788c986c616e9e3a09ab31c08682c042554bde0
[#35952177] Add bootstrap support for groups and members.

Change-Id: Icf187568f362da5e604e70f9f0a22049ed44b385
Fixed gem unit test, failing since last week. Fixed jenkins too.

Change-Id: I691370a9b06f6803126d879966a8eaadd7955c1f
[#35953239] Add query filter support for /Groups endpoint.

With this change, both the /Users and /Groups endpoints support equivalent query filters.

Change-Id: If7582c32dba80cd8a740d2cde29463fa5850bb36
add output to aid bash tab completion

"uaac help commands" now produces command output in a form usable
as input to vidya's tab completion code for bash.

[#35577791]

Change-Id: I752059f427dec871a403881f6d7db67bfddc3da6
Add /clientinfo endpoint

- Authenticated with client secret (HTTP Basic)
- Does not reveal password or additional info

[Fixes #35977889]

Change-Id: I9c7e6b61455735b033ed8eddc9384fe9ec3bd62c
[cfid-112] improve scim error reporting when bad field names

The reponse to a bad field name should now be a 400 with the error message
from the Jackson mapper (which names the bad field).

[Fixes #36258253]

Change-Id: Id8f7e881abed424fdd656d03f8ab30b15f188729
[cfid-45] Fix app sample for previous changes

[#35352675] Extract SocialUserDetailsSource so it can be used later

Change-Id: Ia5c8e0908a1ae170e6b2a90f7c8a1505bfe29096
Merge "Standardize authentication times." into develop
[cfid-128] /home endpoint should redirect if unauthenticated

It turns out that the denyAll fallback filter was erroneously
moved to the root context.  Fixed that and it works again.

[Fixes #36450611]

Change-Id: I9e9dda37c050dbc3c555e619f2ddcf243db4bf9d
Merge "[cfid-45] Fix app sample for previous changes" into develop
Merge "[cfid-128] /home endpoint should redirect if unauthenticated" into develop
Merge "add output to aid bash tab completion" into develop
scriptability improvements for uaac

[finish #36108085]

Change-Id: Ib0505bd238fa419f709d73bfa92207202a36d38f
Merge "scriptability improvements for uaac" into develop
[#35953007] Sync ScimUser.groups field with group_membership table.

With this change, ScimUser.groups is a read-only field through the /User endpoints. During
read operations, this field is calculated dynamically based on the group_membership table.
The 'authorities' field in users table is no longer used (during read or write).

Group membership can be added or updated only through the /Group endpoints. Both user
delete and group delete trigger purging of the related membership records.

Change-Id: I2112c806a5bf1a1338a0d2f613d93e32cdbd0b67
Merge branch 'feature/groups' into develop

Conflicts:
	common/src/main/java/org/cloudfoundry/identity/uaa/scim/JdbcScimUserProvisioning.java
	gem/spec/integration_spec.rb

Change-Id: Iaa7b6d78f7665d3d5cab5545fafe05087b50741c
[cfid-113] Open access to /ids/Users endpoint.

[Fixes #36263115]. The endpoint is no longer specific
to a group and can be queried by any oauth user, passing in a SCIM
filter containing either a username or userid. It can be disabled
using the scim.userids-enabled configuration property but
is enabled by default.

Change-Id: I964287ceb8a66e2c79e4d49c7d4490d97c72fa01
[#36678769] Add tab-completion support for uaac

uaac-completion.sh is a bash script to be sourced for tab-completion to work.
It uses a completion-helper ruby script to generate the completion options based on the
command seen so far, eg.
	input='uaac secret', 		output='set change'
	input='uaac secret set',	output='--secret -s'

The completion-helper ruby script is a generic script that could potentially be used for
generating completion options for ANY command (bosh, vmc etc.)

Change-Id: Ib14509b45db3012fb3636eaf885b0af5fc4e240c
[cfid-134] don't return bcrypted client secret from /authorize

[Fixes #36651859]

Change-Id: I432f7fce713c64e78ecfe6855be676a33c893bf4