Update user filter mechanic to make it more explicit.

Instead of inferring the type of user filter from the include_anonymous
flag and the existence of a user_group_filter property, I have added a
new property, user_filter_type, which has three choices - all users
(which includes None - i.e. auth middleware hasn't run), authenticated
users only, and users in a named group (authenticated by definition).

I've also added a clean() method to enforce the fact that if you add
a named group, you must set the property correctly.
Add response content length to the profiler record.
Cache the rulesets instead of querying db on each request.

Ironically, this could be premature optimisation, but it's only a few
lines of code. Instead of getting the 'live' rules from the database on
each request, we cache for a period (default = 10s).
Bump package version to 0.3