create tile interface component

This adds a new interface component: Tiles.

Tiles are large links containing an image, a headline, some text and a button. The button is aligned to the bottom of the tile. All tiles in a row have the same height.

The image is cropped for varying tile widths.

The rows must be explicit in the html code. See `templates/debug/components.html` for an example.

I did not manage to create a good spacing. Margins don't work with `display: table` and `border-spacing` adds spacing also at the outer border of the table. So I had to go with padding. This means that background color and similar will span across the spacing.