(GEP-108) Warn when conditional is used as r-value

A conditional expression (if, unless, case) cannot be an r-value
expression in Puppet versions < 4.0. This commit ensures that they
will be flagged with an error unless the target platform is >= 4.0.

The commit changes the inheritance hierarchy of the pp Expressions
so that if, unless, case, definition, and node are ExpressionBody
subclasses (they all have a sequence of statements). This made it
easy to check if a conditional is directly contained in a body (and
hence allowed) or if it used as an r-value. The one exception
I found to this is when a case is used in a relationship.
(GEP-167) Att target platform for Puppet 3.7
Merge pull request #35 from puppetlabs/issue-108

(GEP-108) Warn when conditional is used as r-value
(GEP-551) Warn about deprecated variable names

A Name starting with an upper case letter or a digit (but is't
a decimal number without leading zeroes) will become deprecated
in future versions of puppet. This commit ensures that Geppetto
can warn about such names (optional setting but the default is
to warn) and that such names will result in error when the future
platform is used.
Merge pull request #37 from puppetlabs/issue-551

(GEP-551) Warn about deprecated variable names
Merge pull request #39 from puppetlabs/issue-167

(GEP-167) Att target platform for Puppet 3.7
Sort issues alphabetically
(GEP-111) Support chained assignments

Allow AssignmentExpression as RHS in AssignmentExpression and
let validator generate errors when this construct is detected
if the platform in use is version < 4.0