Add a DuettoSafe flag to CastExpr

to mark if a cast is definitely duetto safe
Handle free as a builtin
Mark casts for malloc and free as duetto safe
Do not emit user cast intrinsics if a cast is duetto safe