Patent Preemption of Computer Software Contracts Restricting Reverse Engineering: The Last Stand?