Use options hash for setting the source directory.
Removed specific run_on hooks.

There is no need to duplicate the same behavior in run_on_additions,
run_on_modifications, run_on_removals, run_on_changes is called in all these cases.
Moved initialization from start to initialize.

Jekyll::Site#initialize does not do any work, so per guard
recommendations for writing guards initialization should be in
initialize.
Renamed jekyll! to process_site

jekyll! is an undescriptive method name, renamed to better reflect its
purpose.