JDOQL2 : Support for parameter declared as Object but passed in as specific type

If we declare a parameter as java.lang.Object yet pass it in as its specific type (e.g String) then we need to cater for
1). calling compile() where the actual type of the parameter is not yet known
2). calling execute() where the actual type of the parameter is known

Description

If we declare a parameter as java.lang.Object yet pass it in as its specific type (e.g String) then we need to cater for
1). calling compile() where the actual type of the parameter is not yet known
2). calling execute() where the actual type of the parameter is known