MULE-7399: Flows can start processing messages before referenced flows are completely started

_ Adding a new method in MuleContext to let callers to wait until it is started
_ Updating AbstractMessageDispatcher to wait until mule context is started before sending a message
_ Updating tests that need to send a message but never started mule context

Conflicts:
	core/src/main/java/org/mule/DefaultMuleContext.java

Conflicts:
	core/src/main/java/org/mule/DefaultMuleContext.java

Conflicts:
	core/src/main/java/org/mule/transport/AbstractMessageDispatcher.java

Conflicts:
	core/src/main/java/org/mule/DefaultMuleContext.java
	core/src/test/java/org/mule/construct/BridgeTestCase.java
MULE-7399: Flows can start processing messages before referenced flows are completely started

Broken test: cannot use mule client to exercise an inbound endpoint if mule context is not fully started.

Fix: use HttpClient to exercise an HTTP endpoint.

(cherry picked from commit 19f7add7e2a9758d40c3dceee125220ab461cd71)

Conflicts:
	tests/integration/src/test/resources/composite-source-start-delay-config.xml