Extend adapter interface with ability to inject header from schema

This adds `Adapter#dataset(name, header)` which can be implemented if a
given dataset object cannot return its own header and it should be
defined in the schema
Expose boot DSL via global interface