Stop batching appuserdetails

Also throws all the appuserdetails caching code into one method, rather than being dotted about the place, which is of-course a lot cleaner.