TAJO-1092: Improve the function system to allow other function implementation types.

Closes #178
Merge branch 'master' of http://git-wip-us.apache.org/repos/asf/tajo into index_support