Add rule decorator to define a rule function that takes parameter and arguments interchangeably

This PR is for #69.