General:
positions:	(x,y) - (1,1) is top left of board.
			This lets us use (0,0) etc. as sentinels
letters:		represented as integers
			// 'a' -> 1, 'z' -> 27
			// BLANK as 'a' -> 32 + 1
			// BLANK as 'z' -> 32 + 27

# General Utilities
Assert.java		Assert.assert()

# Generate and load the dictionary
CompDict.java		Compress dictionary -> trie
Dawg.java		the dictionary, as a dawg
DawgConst.java	constants to help interpret the dawg
WordList.java		List all the words in a trie dictionary

# Generate, score, record moves
Board.java		Maintain board, generate moves
Row.java			Generate a move, given a rack and a row
Mask.java			(score,mask,column) tuple
Move.java		a move

# Tiles and collections of tiles
Letters.java		Representation of a collection of letters.
Rack.java			'rack' of letters player can choose from
Sock.java			The scrabble 'sock' of spare letters
Tile.java			draggable scrabble piece

# GUI
TestFrame.java		Test harness for components
DragArea.java		GUI for a board
