Tests for GrammarErrorLevel. Currently passing at NoError.
Parser to support decimal & hex numbers.

Squashed commit of the following:

commit 2329aebc833ec3395d476fe3a748f699a0c6001f
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Thu Aug 23 18:46:50 2012 -0700

    REFACTOR: Use reflection to set AstConfig.

    We were setting 4 the ugly way, so I decided it was bad enough to refactor.

commit fa60abe56a92b3d8fedd8aa0ec634d1b960c98ec
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Thu Aug 23 18:30:34 2012 -0700

    Move `StringExtensions` to `Extension\String\`

commit 1485a37f05e9c2d8b1cf43a8a998fe4767210cff
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Thu Aug 23 18:09:06 2012 -0700

    Comment change.

commit 6511392b33dcd36833df841db314eb93866b5f5f
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Thu Aug 23 18:08:34 2012 -0700

    REFACTORING: Back off on use of query comprehension syntax

    It was just getting hard to read.

commit 3fd16efec5430883da1149261ba20e5fde74c086
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Thu Aug 23 17:37:57 2012 -0700

    TEST: make sure `generic_token` is correcty set up for AST

    I'm getting ready to refactor the AST configuration a little.

commit ed4f49dfd3c4ff885dd124f73cc3aaf5fc3ec0d1
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Thu Aug 23 17:08:03 2012 -0700

    Implment `hexadecimal_integer_literal_node`.

    Now we can parse and use hex integers, e.g.:

        PS> 0x10 + 2
        18

commit 88cafcf25b1e54338b863c839c8f2e87395eda28
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Thu Aug 23 17:02:20 2012 -0700

    Make `CaseInsensitiveGrammar` actually case-insenstive!

    I had the flag backwards, *sigh*.

commit cd1067dc919cdde87dcf531605174af30e79bbe1
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Thu Aug 23 13:28:07 2012 -0700

    TEST: Fix HEXIntegerLiteralTest

    Needed to supply `RexexOptions.IgnoreCase`, which Irony already does.

commit ff4178d1e93f68d638a15c6dd85dc56c027df9bc
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Thu Aug 23 13:25:52 2012 -0700

    Move literal regexes in to productions.

    The problem was trying to write matching for integer literals, both hex
    and decimal. The pattern described in the spec looks like:

       ([0-9]+)|(0x[0-9a-z]+)

    The regex alternation operator `|` is not greedy, so when trying to match
    `0xa` it would just match `0`. One fix is to reorder the regex so the hex
    part comes before the decimal part, but that's a bit error prone. So
    instead I moved the responsibility from the scanner to the parser. I did
    that by moving the definitions of the following rules from the regex-based
    terminals to the rule-based grammar:

     - `literal`
     - `integer_literal`
     - `string_literal`
     - `real_literal`     # not yet implemented

    A consequence of this change is that the AST implementation is now much
    simpler. Previously `literal_node.GetValue()` had to figure out which
    sub-regex was the best match for this token, but now that's all done by the
    parser.

    hex integers and expandable strings are still not implemented in the AST;
    that's next.

commit c576157df3d4f119036a84b255a50b998beae0df
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Thu Aug 23 12:36:34 2012 -0700

    Remove AST node types that did nothing.

    `_node` was abstract, but now it's just the default implementation.

    Many of these will be added back later, as needed.

commit 7ae110825abb7c346241c3d27541b542e0c86277
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Thu Aug 23 12:15:40 2012 -0700

    Ensure regexes are greedy enough.

    I was having problems with regex terminals not matching enough. The old
    tests forced greed with ^...$, but that's not what the live parser does:
    it lets the regex match as much as it wants, and uses that.

commit 629a6145e4013074e345661a1492b9f3f0028f3a
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Wed Aug 22 20:48:02 2012 -0700

    Implement recognition of `decimal_integer_literal`.

    This works:
        PS> 1
        1
        PS> 4 + 4
        8

commit ecace4e806a5552de8cfd64ba25da4bd4d21c73a
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Wed Aug 22 19:43:24 2012 -0700

    Rank `generic_token` lower than all others.

    There is an ambiguity here:
        pipeline ::= expression | command

        expression ::= literal
        literal = integer_literal
        integer_literal = [0..9]+

        command ::= generic_token
        generic_token = Any Unicode character except:
                {		}		(		)		;		,		|		&		$
                `   (The backtick character U+0060)
                double_quote_character
                single_quote_character
                whitespace
                new_line_character

    A number (1234) can match either `expression` or `command`. I don't know why this isn't flagged by Irony - beyond
    my understanding/memory of parsing theory.

    Interestingly, PowerShell allows almost anything to be a command name. For example, this works:
        PS> Set-Alias + Get-Location
        PS> & +

    A Terminal has an integer priority. Given the choice between matching `generic_token` and `integer_literal`, I want the latter. In fact,
    I want `generic_token` to be a match of last resort. So I set its priorty to -1 (the default is 0).

    I couldn't find any discussion of this in the PowerShell Language Specification, but I might have missed it.

commit 7661f720fcc3f52e7af59fb545f969b2d8c35e30
Merge: 9e06408 96d52e2
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Wed Aug 22 17:12:12 2012 -0700

    Merge branch 'integrate-new-parser' into integrate-new-parser.numbers

commit 9e06408bdb019a6502a0bcbec42995e4d2789fe7
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Wed Aug 22 09:30:27 2012 -0700

    Extend `literal_pattern` to allow decimal integers.

commit b669e6e53ccfda1df468f2d5619fd95470b3b0f0
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Wed Aug 22 09:30:03 2012 -0700

    Mark `PowerShellGrammarLexicalPatternsTests` public

    NUnit will ignore non-public test fixtures, which makes it easy for
    tests to quietly disappear down a black hole. Arggg!

commit 2e38f1d73b610432d9b31fbdf1bdb1f0e8d5a699
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Wed Aug 22 09:17:31 2012 -0700

    Parse decimals literals.

commit 3b22be820e02d7a6119155fa89d17969e62b5b74
Author: Jay Bazuzi <jay@bazuzi.com>
Date:   Wed Aug 22 09:17:09 2012 -0700

    Some tests to aim for.