[1119] Combine duplicated `with` blocks
[1119] Extract repeated HTML into an include
[1119] Use inclusion tag for previous and next sections
[1119] Change next/prev finding logic to stay in same section

This uses code from speeches.models._get_next_previous_node.
Thanks to Matthew Somerville for that suggestion.
[1119] Assign html to variable in template to avoid running code twice

Thanks to Matthew Somerville for suggesting this approach.
Catch the IndexError exception specifically rather than any exception
Merge branch 'issues/1119-smarter-next-prev-links'