Make dropping pieces appear behind the board

This is done by using a board surface (created at initialization and
cached) with transparent piece openings.

Also change various piece-location functions to take an offset parameter
instead of the offset always being the board position.

Fixes #17