Generated code can store object instances referenced in the expression

ConstantObjectExpression instances now store the static type with which they were created - this prevents generated code from trying to reference protected types inferred through Object.GetType