Rename class "Video" to "Screen"

It matches the file name.
screen: reduce max number of blits

The array of 360 blits takes up 2160 bytes on the AVR.  It probably will
eventually be removed.  For now, reduce the size of the array.
Screen: Reduce member variable sizes

Use uint8_t's when possible.
Also specify the size of member variables too.
main: add call to system init func

That function is platform-specific.  Officially it is a stub.  I have a
local file that has setup code for the AVR.
images: stub out filename code

Multidimensional arrays are apparently screwy on embedded devices.  We
won't be doing file accesses anyway so just get rid of all the filename
code.
game: Put game data arrays into struct

This allows the data size to be determined by calling sizeof() on the
struct.

Also dump the memory required for one GameEntity.

Current stats on AVR:
Game data size: 3257 bytes
Game entity size: 17 bytes
game_entity: Use auto bit fields for flag variables

No need to manually check/set the bits.
game_entity: Specify bit widths for small variables

Based on actual game usage:
|position| is from 0-59   => 6 bits needed
|image_num| is from 0-7   => 3 bits needed
|type| is from 0-10       => 4 bits needed

Note that if the game usage were to change, these bit fields would have to
be increased or could be decreased.

Current stats on AVR:
Game data: 3257 -> 2533 bytes
Game entity; 17 -> 13 bytes
game: publish game entity type property data size

Currently 396 bytes.
game_entity: specify bit widths for per-type data

Be explicit about storage requirements.
Also changed some ints to uint8_t's.

Memory requirements for all per-type data:  396 -> 330 bytes
game: store shield data as array of flags

The flags indicate the state (1 = intact, 0 = destroyed).
The position in the array can be used to determine location x, y.

Game data memory on AVR: 2533 -> 1669 bytes