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
Merge branch 'index_support' of http://git-wip-us.apache.org/repos/asf/tajo into TAJO-838_2
Merge branch 'TAJO-838_2' of github.com:jihoonson/tajo-2 into TAJO-838_2