Refactor and addition of additional params and results
- Addition of control events
- Addition of terminate reasons
- Addition of reject answers to start request
- Refactor for making the protocol manageable
- Addition of unit tests

Change-Id: I4ee8c1114842590956a071f6b174564a812c177f