Updated codegen.ml and compile.ml, Added run.sh, Added a test case.

1. Reduced duplicate codes to improve code quality.
2. Compile takes input from standard input.
3. Run.sh accepts argument of .cul input files and will compite it, run
it and print the output.
4. Added a test case.