Check for level change in data.loadIfNeeded

This is especially important for dimension aggregation, because when we
aggregate a dimension, we come back to the root level, se we need to
reload data.
Disable ctrl + mouseweel for zooming on the interface

This zooming behavior interfere with ctrl + mousewheel used for partial
drill-down. You can still use your browser menu for zooming.
Fix dopdowns that did not closed

We need to return true so that dropdowns do close. Replace "return
false" with "e.preventDefault()" so that we still do not follow the "#"
link.
Move hideUnfiltered option to dimension

The "hide unfiltered" option for the charts is handled globally on the dimension, allowing us to remove those hidden elements from the computation of the color scale
Update web demo
Show an alert in wordcloud is hideUnfiltered activated
Improve style
Remove empty dimension line
Add first tests to query. Refactoring starts.
Extract cache component from query

The cache component is a sub-namespace of the query namespace.
This helps to get a better separation of code and a much clearer
interface of query.
This commit only extracts the cache from schema to the hierarchy.
The cache functions are not replaced in query yet.
Port the levels layer in query.cache.
Port the properties layer in query.cache.
Replace the cache features of query by the dedicated query.cache.
Add isolation to state tests.
Update query documentation
Set some query's methods as private
Add an helper function to query to avoid duplication.