can select any subexpression with only left and right keys
window resize updates drawables
pairs with selected drawable or subexpression
attempt at new layout
variable panel added, also better layout
modified theorem panel layout (possibly unstable -- but committed due to probable imminent hardware failure)
improved layout, added context menus
Merge branch 'large-table-layout' into types

The merge is complete in a syntactic sense (Prove-It compiles and runs), but incomplete in a semantic sense.

Conflicts:
	src/Expression.java
	src/MainWindow.java
Allow spaces in variable names

When the parser encounters two or more words, of which the first
is the name of a type, all subsequent words are concatenated to
create the name of the variable.
First attempt at variable panel
Second attempt at first attempt at variable panel
Preparations for operator precedence

The default Operator toLatex method will not place parentheses around OperatorExpressions whose operators have higher precedence.
More precedence

Operators that override Operator.toLatex now respect precedence.
Geometric operators have maximum precedence.
Variable panel works now!

The VariableListModel has been renamed to VariableEnvironment and
now implements List<VariableExpression>, and Expression.parse now
takes a VariableEnvironment in its second argument.

Each call to Expression.parse has been updated accordingly.
Finally, the statement templates in the SketchCanvas have been
updated so that points are created with the correct type, POINT.
The Statement(String) constructors now require an environment.

The two Statement constructors that take Strings now also take
a VariableEnvironment in which to parse the string.
Each call to these constructors has been updated to provide an
appropriate environment: the MainWindow uses its environment, and
each theorem uses its own environment.
You can only pair variables and expressions of the same type.

In pop-up menus for the statement list and SketchCanvas, the
button to pair with a theorem variable is only enabled if
(1) a statement or drawable is selected, (2) a pairing is selected
in the theorem panel, and (3) the type of the statement or drawable
matches the type of the variable in the pairing.

The Drawable interface has a new method getType() which returns the
drawable's type; each class implementing Drawable has a suitable
implementation of this method.
initial handling of precedence
inappropriate use of replace methods removed
Popup menu for variable panel

At present, the popup menu uses the selected variable, instead of the
variable which was clicked on. Additionally, right-clicking on a
variable in the variable panel does not select that variable. How can I
find out which item in a JList is under a MouseEvent?
Add missing Override annotations

It helps me sleep at night to know that these are in the right places.