[WIP] provenance plugin

Fixes #242.

- [x] add tests, fix style
- [x] get and address feedback

<!---
@huboard:{"order":270.0,"milestone_order":270,"custom_state":""}
-->

We should use `cmake_parse_arguments` here to have a flexible and extensible API for this method. An example usage is in PythonTests.cmake in `add_python_test`.