parallel selector matching
auto merge of #1152 : ILyoan/servo/parallel_selector_matching, r=SimonSapin

This an attempt to parallelize selector matching.

Approach
* Let the `match_subtree` spawn limited number of tasks.
* Each of them takes a list of nodes that is uniformly distributed
* And then each task does the selector matching for every single node in its list.

(Not sure if this is worthwhile for long term especially considering CSS optimizing techniques such as ancestor filter or style sharing)

Benchmark from my machine (LayoutSelectorMatchCategory) (intel i7 3.4GHz * 8, linux x86_64)
* src/test/demo.html
 * original: 0.07ms
 * parallel: 0.20ms
* perf-rainbow.html
 * original: 485ms
 * parallel: 245ms
* A test page with 15000 nodes and 3000 CSS selector(including inline style).
 * original: 140ms
 * parallel: 60ms
Update rust-cssparser for visibility rules.
Only export an explicit public API in the style crate

I.e. make every module private by default.