WorkItems: Externalize large results
 * Fix large WorkItem results thrashing LOH during WorkItem cleanup
   - Can cause OOM due to LOH fragmentation
 * More carefully scope variable in WorkItem cleanup foreach
 * Keep large workitem results in separate dictionary store
 * Only retrieve large results when needed
 * Fix behavior value of IPersistentDictionary.Remove
 * Cleanup SqlDictionary with mock SqlClient test fixture
 * Reduce workitem retention to 1 day (was 3 days)
 * Add better protection to RoleEnvironment access to improve local test runnability