config: seperate AssertValid and AssertStructValid

Added an error structure to make it possible to get the specifics of the failure.
config: remove config validator
config/validate: add new config validator

This validator is still experimental and is going to need new rules in the
future. This lays out the general framework.
flags: add validate flag

This will allow the user to run a standalone validation.