Created ArrayNode::getValues() and getKeys().
Created ArrayNode::hasKey(), which can test on both scalar values or expressions.
NodeCollection constructor defaults to empty collection
Added documentation
Do not use type juggling
Array elements without a key have an implicit integer key