Simplify smallvec macros

Macros can now expand to multiple items. This takes advantage of that.
Replace most of the SmallVec0 usages with std::vec::Vec

We can't replace the ones in the `style` crate because some functions expect generic `SmallVec`s.
auto merge of #2337 : bjz/servo/smallvec, r=pcwalton

We can't replace the ones in the `style` crate because some functions expect generic `SmallVec`s.

I also did some reorganisation of the `smallvec` macros.

cc @pcwalton