Refactor CREATEFILTER and add additional language support

This pull request addresses issue #59. It doesn't add support for all of the languages we want to support, but it puts an initial framework in place for adding in other languages. There are more changes that I have in mind, but I wanted to go ahead and get some feedback a while. Please look at the commit logs. I provided detailed summaries of the changes.