[vector-api] Per-feature styleFunction

This PR cherry-picks a few commits from the `ol.format.KML` PR (#1368) related to giving `ol.Feature`s their own `styleFunction`s. I need this for some code unrelated to KML.