PLT-354 - Initial version of identifiers

Pull request to add identifiers.

This is an initial version of identifiers necessary so we can work on code higher up the stack. It is closely based on previous code and as a result will benefit from refinement. Such refinement can only occur with more experience of usages of the code.

PR is on the basis of looking for major issues only.
Coverage 97%.
This arg checker is a minimal one, so we can't just re-run the real tests against it. We'd have to somehow forward the test cases to the real class which seems more complicated than necessary.