Free stderr_data if returning stdout_data instead

The stderr_data will either be NULL or an empty string. Calling g_free() on
both does what we want.
Add snapshot-related functions to the list of required features

These will soon be required by blivet.
Make the list of functions in a plugin static

It's not supposed to be accessed directly from the outside.
Make code for running lvm and reporting error (if any) reusable

This will be useful for a lot of lvm functions in the future.