Defines and implements EDL_ASTOperator

This pull request implements EDL_ASTOperator (and dual EDL_ConstASTOperator) by making it inherit from ASTOperator and adding methods to EDL_ASTOperator specific to the EDL abstract syntax tree.

The implementation and changes are fairly standard. Two items of note: First off, the access level of jdi::AST members have been changed from protected to public, such that children of ASTOperator can access them.
Second off, the node members of EDL_AST use a dynamic cast when calling the appropriate method on EDL_ASTOperator.