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.