[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