utility: add trim_left, trim_right and trim functions
utility: use static asserts
option: fix error message
utility: don't call std::next

When converting from reverse_iterator to iterator, this happens
automatically.
xml: be moar propah
slap: be moar propah
slap: be moar propah
hei: be moar propah
option: add const to usage()