A General equilibrium analysis of software development : copyright protection and contract enforcement