Implemented support for this weird LLVM function pointer corner case. In particular, it often happens that certain LLVM warnings cause indirect calls to be introduced, where the pointer value is just a bitcast from the function declaration. So we can still get the actual function that is being called with a little bit of work.
Extended the memory model to be able to check for double free.