Properly handle compiler options.

Support the return* and report* compiler options, propagating them properly.

Renamed option `out_dir` to `outdir` to match the erlang compiler option naming.
`out_dir` kept as alias for backwards compatibility.

Added `no_load` option for cases where the compiled template is not to be used right away.

Include checksum also when compiling templates from binaries rather than files. The source file name reported by `module_info(source)` is changed to `/<text>` instead of the current path at compile time.

`compile_dir` branch of the code not tested. :/

Fixes #28, #116.
Touch up compiler code formatting.