[cfid-331] Prevent cycles in nested groups from causing an infinite recursion

Preventing formation of cycles in the group hierarchy during create or update will be
tricky (multiple points in code where we will have to do this), and also expensive
compared to what it will gain us in exchange. Detecting an existing cycle on the other
hand is fairly straightforward AND contained to one flow - GET /User/{id} where we
recursively compute the groups that a user is part of.

Fixes [#39895111].

Change-Id: I3516b2000a42e704918379ce13af6b68f37f0d48
[cfid-243] Add gatling scalability tests for SCIM groups

Fixes [#38680733]. Scenarios under test:
1. Effect of LARGE number of groups on the /Groups and /Users endpoints
2. Effect of 20-odd nested groups on GET /Users/{userId}
3. Operations involving groups with LARGE number of members, like (nUsers-1)

Change-Id: Ia1e97bde1e6e747b4cb289fabe2be7c941b9f2d2
Merge "[cfid-243] Add gatling scalability tests for SCIM groups" into develop
Externalize aspectj version config

Change-Id: Ibbc7f8db9513b9635d27aa9cefe0e45bf4df82d7
[cfid-337] Remove login sample

The real login-server has its own repo now, so that should be
a good enough reference point (together with the ruby sample)

[Fixes #39928121] Remove login sample (Java)

Change-Id: Ia6cbb5042a25f7bff50bc75c5e8185711391d202
[cfid-283] Remove cycles between authentication, audit and event packages

Radical refactoring of audit features so that each functional area that needs
it can implement its own features, so while everyone has to depend on the
audit package, the audit package is independent. Hopefully much cleaner.

[Fixes #39073217]

Change-Id: Iefa6e7ab5a9ed1717726923c475e28bc3fc39dfb
[cfid-283] Remove dependency between authentication and scim

[Fixes #39073217]

Change-Id: Id78b26427dede21b1b0d1c85735d0ec81407f607
[cfid-283] Remove cycles in password and scim

[Fixes #39073217]

Change-Id: Ifcb265d229c97ee6a66f9ec49bbabd5e3206e6c2
[cfid-283] Remove dependencies on scim from lower level packages

I think SCIM could be extracted into its own library at this point.  Let's try and keep
it that way.

[Fixes #39073217] [cfid-283] Remove cycles between authentication, audit and event packages in uaa

Change-Id: I8a407100c209d2b3958df086ecb2f1c3adb0ee79
[cfid-42] Add refresh_token grant automatically

When a client is created which has authorization_code grant type but is
missing refresh_token, the latter will be silently added. This prevents
problems when users accidentally forget to ask for this grant type when they
actually need it. [Fixes #35577857].

Change-Id: I1f5a87753256d82f244dc067ad3314d978864c68
[cfid-241] More tidying up on audit

The origin field on the audit records was messy (just a toString
of authentication details which might not yield anything interesting).
Added details of client and remote ip address if known.

[Fixes #38648335]

Change-Id: Iaced62a19ef784899f74bfe1c286d2c67afd04a2
[cfid-249] move any state needed across UAAs to shared storage

Added a JDBC store for the existing TokenStore and
AutorizationCodeServices.  The necessary tables are
created on startup.

[Fixes #38710949]

Change-Id: Ibaa299ef232d22fa7758a8cf26c40768c4c08913
[cfid-196] allow familyname and givenname to be null

[Fixes #37643127]

Change-Id: I07e13a318d04ec2a854a8213af40b8b1609f6f25
[cfid-47] Change DDL scripts to allow mixed case username...

...but preserve case-insensitivity in queries.

[Fixes #35352693] [cfid-47] username should preserve case

Change-Id: I9f016d884d230e8e8ee1c50383abf25b0679a928
[cfid-347] Integration test failures with postgresql

[Fixes #40112407]

Change-Id: Ifb61fded4a0e031161367391a87f4deb1c60a26c
Fix login server name in gatling tests.

Also added a vmc failed login scenario and some other
minor changes.

Change-Id: I65f66226db754bf1f5b824278d7b69e26fd6826e
Add defensive retry for lock failures in token store

Change-Id: I0774f58793d225398d5243e690f470657f8cce7c
Update to gatling 1.3.5

Also reset the number of users to 10000. Simplified Readme to only
describe using sbt to run the tests. Added auth code check to
fail authorization code flow at the point where it fails to get
an auth code, rather than the subsequent token request.

Change-Id: Iddd1ddef27e7a04eac389e869f0cfec7e1ea80c0
Merge "Update to gatling 1.3.5" into develop
Update maven build to gatling 1.3.5

Change-Id: Icab1d676cae4697445ffd0c63278417f19cd1d66