Use custom list adapter for contests.

Fixes #18.

Also fixes some layout issues for contests with long descriptions.
Could refactore each of these similar if/else text/visibility blocks with a function.