Simplify and improve how headers are handled

* use a simple array of symbols as the header for base relations
* automatically infer header using `Sequel::Dataset#columns` for base
  relations
* use `Header` class only for mapping layer as this is the only place where
  we might want to specify renaming, type coercions and so on
* extend adapter interface with `[](name)` which must return a dataset
  that will be passed to ROM::Relation

This is a big simplification as now ROM doesn't really require to define
all attributes for all base relations. For schema-less databases this
will be required but in case of RDBMS/Sequel we can simply use
information from the schema to know the structure of resulting tuples.

It is also simpler to handle advanced mapping in just one place (the
mapper DSL) rather than have it split between relation definitions *and*
mapping like we had in the previous prototypes of ROM. That's why any
meta-info we previously had in base relation headers is gone.

refs #53