Use UIDs instead of plain user IDs

This is basically security thorugh obscurity, and as such doesn't provide for
any meaningful protection against automated crawlings or similar, but is better
than nothing.
Use the get_absolute_url method to render URLs

This is more consistent with the DRY principle. Also, use 'pk' instead of
'id' in the workout view URL.
Small refactor of 'render_day'

The main variable used to control the display of edit elements is not called
'editable', that makes more sense that 'compact'.
Check for correct Exception when checking access
Allow anonymous access to the main workout page
Change URLs for calendar

The regex for the 'uidb64' parameter also matched the yyyy-mm format used.
Allow anonymous access to the workout log page
Make access test more compact and readable
Small changes to log URLs