End level player evaluation

#### What's this PR do?
The message delivered at the end of levels is determined by some combination of user choices up to that point in the story. This handles those end level scenarios and evaluates the message that should be delivered.

#### Where should the reviewer start?
`getEndLevelMessage` is the main new thing happening here.

That function will determine what the next opt-in path for the user will be. This is dictated by the choices configured in `"END-LEVEL1": {"choices":"conditions": []}` which are structured like mongo logic operations. `getEndLevelMessage` essentially parses through the logic to select the proper path.

#### What are the relevant tickets?
https://github.com/DoSomething/ds-mdata-responder/issues/70

cc: @DeeZone @desmondmorris