Adding better error handling

Changes:
- Proper error pages and return codes for most (not all) 403 and 404 responses
- Templates now HTML5 compliant