feature(exceptions): Add 3 new http-inspired exception classes

These are not under an Http namespace because they should be thrown
from all parts of the system including those parts not familiar with
HTTP. The HTTP layer will catch them and tranform them into the
proper status codes and responses.
feature(storage): Add storage classes for OO representation of database

These just wrap the global methods for now but allow us to
keep globals mostly out of new code.
feature(exceptions): Add more BadRequest exceptions
chore(api): Refactor existing APIs according to new services and standards
feature(storage): New EntitiesQuery abstraction for searching for entities.

Makes it easy to use the same options array to count and fetch a list of entities.
feature(discussions): Add an API endpoint for managing discussions and replies
feature(discussions): Provide an Angularized UI for discussions
feature(menus): Add a fancy new client-rendered Menus system
chore(apps): Moving to static js files for configuring apps
fix(core): Various fixes to make things work with all the latest updates