Improve support for numeric fields in json extract

Allow numeric fields without quoting in path expressions
Numeric fields match both array elements and object fields
I think you can simplify both these methods by making `nextCharacter()` return the character'

    StringBuilder sb = new StringBuilder();
    while (hasNextCharacter() && isLetterOrDigit(peekCharacter())) {
        sb.append(nextCharacter());
    }
    if (sb.length() == 0) {
        throw invalidJsonPath();
    }
    return sb.toString();