Implemented integer literal type promotion.

Integer literals now automatically get widened to a larger type
if necessary, going from int, over long and decimal to double if
necessary. Previously integer literals were only int.

Also implemented the long type suffix which forces the literal to
be of type long.

This follows the wording of the spec very closely (also visible in
the comments in the source code). Where the specification did not
specify exact behavior (such as when an un-suffixed literal
overflows double), PowerShell v4's behavior was adopted.