GUAC-932: Further cleanup history display code.

Add HistoryEntryDuration class. Move logic to controller.
Yup. The filter doesn't care whether the substitution variables are present, and if they aren't present, then it doesn't care about ```wrapper.duration```.