Make it possible to return several segment in segment functions

This requires a couple of minor changes to custom segments. The segment
`highlight` key has been renamed to `highlight_group`, and segment
functions must return a list of segments dicts instead of just a dict.

Closes #88.