#2275 Catalog draft study data request + various

- Support draft study data requests
- Initialize catalog with selection
- Split protocol viewer plugin js in protocol viewer js and catalog js (allows recycling catalog js in other plugins)
  - Refactor catalog js to improve maintainability
- Base protocol viewer plugin on protocol entities with root=true instead of dataset entities
  - Update example data
- Merge ShoppingCart*, OrderStudyData* into ProtocolViewer*
- Increase ElasticSearch query max_clause_count
- Index root protocol in ProtocolTable
- Add Eclipse javascript style
- Deprecate DatabaseException
  - Refactor code to remove DatabaseException