Add pagination to announcements show page, refactor code

@cgruppioni @chukdisc
Have you actually tested this? This won't work.