Use user_has_cap filter rather than map_meta_cap

We'll cover this a bit better once this is extended some more.