Adds shared specs for config section types
Adds validation method to config section types

We need to create a lot of configs and be happy they are valid otherwise
our tests may continue being broken.

This exposes the underlying validation for sections in a cleaner way but
we still need to be able to validate a full configuration.
Valids API client configurations during #to_fog

This may cause "errors" when a config file is invalid according to the
built in rules. However an overt error is probably better than subtle
glitches based on passing blank values to fog.

Also adds specs for the #to_fog conversions to confirm the a hash taken
from a configuration file, is it being transformed into a useful version
for passing to a fog service.