Double Management and Entity Select optimizations

Updates to the entity select process allowing for "Actions" (in the form of stack frames) to be executed. Actions allow apps to define alternate workflows to follow from the Detail Collection screens (for instance, registering a new Patient when you can't find one).

This PR defines the new Data Model for actions, and updates the stack processing to disambiguate how certain sessions should be managed when the stack is updated.

It also adds the appropriate hooks for processing those actions in j2me, although the actual UI for stack actions isn't exposed yet.

This PR also splits out the case db optimizations into a more general Storage root object for performance reasons

NOTE - The "other" commits are actually commits that are part of CommCare trunk, they are currently only tracked as individual commits on the 2.13 branch due to an artifact of the migration process. 

The "Files changed" is the most accurate way to review the PR. 
Ah, so all of the lowercasing that happens elsewhere is (I believe) all basically done by lowercasing the incoming XML manually, so it's just different ways of ignoring casing, I think. We may not be 100% consistent, but I think most of the pull parsing code tries to be case insensitive.