Use Weights to bias word directions

Added level definitions with each level definition being mapped to a
minimum grid size as well as weights for each direction (e.g. EASY -> no
diagonal placements). The final grid size is calculated depending on the
weights. The directions for words are also generated depending on the
weights.

The game level is currently hard coded to NORMAL. Need to introduce
preferences to allow user to choose the game level.