Added support for function prototypes, and a pass to automatically insert them.