(#1387) - prototype based plugins api

dependent on the other pull, currently has mapreduce pointing to the git repo so it can be tested