Can now also treat Buffers as Funcs.

Treating Images as funcs now goes via Buffers.
Track unique func names using a map instead of a set

I was concerned about the pathological case where you generate
a halide function with the same name over and over inside a
long running program, or in an inner loop. I'm not sure when this
would come up - perhaps during aggressive autotuning.
Renamed fast_malloc and fast_free to hl_malloc and hl_free

This makes them less odd-sounding to override in a statically-
compiled halide program. They were only called "fast" because
"safe" variants also existed in the past.
Enable assert in CodeGen.cpp