[headers] add etag + test coverage
[refactor] introduce 4 sub-classes of Hedaer\Base to allow distrinction of generic, request, response and entity headers