[compile] reversed the order of :has

ensure the element meets all other criteria before traversing the
children.

:has is probably the most expensive selector available and should be
called as late as possible
[test/helper] added document.createElement method
[attributes] implemented support for cases where attribute selectors didn't match anything

following http://www.w3.org/TR/selectors/#attribute-selectors
[pseudos] simplified :button
[attributes] fixed `[attr!=""]` selector
[pseudos] properly implemented `:selected`

now also respects a siblings `selected` property