Added some properties. Refs #9358.
Started to refactor the original code. Refs #9358
Checkpointing work (progress). Refs #9358.
Refs #9358.  Refactor continues.
Refs #9358.  Checkpointing work without compiling error.
Refs #9358.  Checkpointing work for unit test.
Corrected an error in function name. Refs #9358.
Fixed error for fx.parname style input. Refs #9358.
Cleaned the codes. Refs #9358.
Refs #9358. Enhancing the usability (in progress).

Including
(1) allowing users to input function parameter values as vector;
(2) providing hints on parameter names to user
Fixed some errors in unit tests. Refs #9358.
Removed workspaces generated in unit tests. Refs #9358.
Refs #9358.  Added and fixed unit tests.
Refs #9358.  Cleaned up debug output.
Refs #9358. Resolved conflicts.