Throw OCaml exceptions on errors when writing files.

Allows us to handle errors in application code.
Rename libav.c to libav_stubs.c.

Follows OCaml naming convention for C-source interfaces.
Modularize Libav binding.

Allows for more flexibility to write setup/teardown code in OCaml.
Throw OCaml exception on errors from reading files.
Add init function.

Necessary to register the EOF exception with C before anything
else is done.