Track child connection ids in separate class.

Extract mapping of initial correlation id and connection id into
separate class. This will be re-used by the `LifecycleStateMachine` to
handle `Terminate` requests correctly.
Use `ChildConnectionIds` in `Lifecyclestatemachine`.
Create LSM when connection is initially created.

Track mapping between child connection id and correlation id in the
`ConnectionEntity`. Pass initial reserve responses to both RMS and LSM
to manage state correctly.

Terminate should now be accepted even before the reservation is
confirmed. The case where a terminate is received before a child
connection id is known is not yet handled.
Send downstream terminate request when child connection id is received.

When an initial terminate request is received all child connection ids
may not be known yet. Delay sending the terminate request downstream
until the child connection becomes known.
Allow terminate even before path is calculated.

In this case the output of the path finder is ignored and no child
connections are ever created, so the aggregator switches to `TERMINATED`
immediately.
Merge branch 'terminate-req'

Conflicts:
	app/nl/surfnet/safnari/ConnectionEntity.scala
	app/nl/surfnet/safnari/LifecycleStateMachine.scala