adjust interaction with data criteria elements

de-bundling this from my patient builder scrolling work.

The main change is that, when opening a category, all others compress to save space gracefully. Long text is handled by cutting it off with an ellipsis.

![image](https://cloud.githubusercontent.com/assets/2136286/5014740/3232f6b6-6a66-11e4-8b80-d086c892ddfa.png)