Filters are now defined as modules.
These modules can either have a #render method,
which takes a source string and returns the rendered version;
or a #compile method, which takes the current Haml::Precompiler instance as well as a source string
and uses the precompiler to add code to the Haml buffer
that will result in the filter rendering.
Also allows #{}-interpolation for all pre-defined filters
(and any new filters using #render).
Inspiration came from Bob Aman's patch at http://pastie.caboo.se/100417
and Les Hill's patch at http://pastie.org/156177.