Add p12~P16

1. add decode-run-length, duplicate/replicate, drop
2. add test cases for them
3. rename files with long names
4. fix bug in my-length
5. move general utility functions to src
6. refine test framework to support verify function
Delete renamed files in last commit.