Add Files For Composite Pattern

Adds files for my solution to the composite pattern anssignment.

Files:

 * composite/Expr.java: Stub class for mathematical expressions.
 * composite/Statement.java: Abstract superclass for the other
   statement types.
 * composite/Assignment.java: Class for assignment statements.
 * composite/Compound.java: Class for begin ... end blocks.
 * composite/Conditional.java: Class for if ... else ... end blocks.
 * composite/Main.java: Driver program.
 * composite/While: Class for while loops.
Change Compound Constructor

Change the constructor for Compound to accept zero or more Statements to match
the professor's intentions.

Changes:

 * Compound.java: Constructor takes zero or more arguments.
Add isComposite Method

Adds a default implementation of isComposite() to the Statement class for derived
classes to override. By default, Statements are not composite.

Changes:

 * Statement.java: Add isComposite() method.
Fix Declaration of isComposite

Fixes the declaration of isComposite to actually declare a return type. D'oh!

Changes:

 * Statement.java: Add a return type to isComposite().
Deal With Semicolons

Deals with adding semicolons to compound statements. Statements in composite blocks
should be separated by semicolons, although it appears that composite sub-statements
are the exception.

Changes:

 * Assignment.java: Don't append a newline when pretty-printing. Let the enclosing
   statement handle it.
 * Compound.java: Override isComposite() and add semicolons to pretty-printed code
   where necessary.
 * While.java: Don't append a newline to the end of pretty-printed code. Let the
   enclosing statement handle it.
 * Main.java: Add a newline between the first and second example.
Merge pull request #2 from heathharrelson/composite

Composite