Add optional ability to report execution times for ansible-playbook

I have a requirement from management to report how long it takes to run various system tasks, along with timings for some sub-tasks within those e.g. how long was an HA pair single sided during a deploy.

This commit adds a new --report-times option to ansible-playbook which reports the time taken to run a top-level playbook after the play recap. It also adds the ability to start and stop arbitrary timers on plays using start_timers and end_timers, and reports on them as well. More details in the docs.

If you don't use the option then the output remains exactly is it is now so anything parsing existing output shouldn't be affected.