XSL: Move XSL related classes into submodule

Create XSL submodule for all classes related with locating XSL files and storing
them into objects.
XSL: Refactor Transform class to use multiple regexps

Add possibility to store regular expressions inside of the Transform class and
match against multiple of them. This is first step in direction of multiple
regexps for transform instance and checking them sequentially so that multiple
of them can match.
XSL: Refactor Factory to use new format

Change format of XSL factory configuration file to accommodate multiple regular
expressions per transform. Modify the storage from Hash to Array so that the
order in config file becomes important - first matched transform is returned.
Main: Rename main application file
Main: Refactor command line option parsing

Split command line switches into two groups:

 - application configuration
 - ebook metadata specification

The configuration group contains path to the work directory and file with
metadata. Second group contains switches for overriding some aspects of ebook
metadata on command line or for creating  metadata quick and dirty way when in
hurry.

Add some unit test for the command line option parsing.
Main: Add Chapter class

Implement new class, Chapter and move most of the url download, transform and
parse functionality into it.
Main: Refactor Book class for holding whole book

Start Book class refactoring from simple GEPUB::Builder wrapper into class that
contains all book metadata and drives download and transformation of URLs that
will make up ebook content.
Main: Add class for book metadata storage

Implement class storing high level information about ebook and use it in the
Book class to store that information instead of bunch of instance variables.
Main: Allow book init from both file and hash

Refactor Book class initialization and allow both hash and yaml file in the same
time. The values from hash will override values from yaml file with exception of
:content key.

The :content holds array of urls and values from hash will be appended at the
end of the array read from yaml file.
Main: Implement instance dumping into hash

Add dump() functions into all classes that hold ebook content or information for
converting from ruby classes into hashes and arrays that can be serialized into
YAML.

The reason we do not serialize ruby objects directly is that we want to store
the data into user readable (and editable) file. Annotations from ruby object
serialization would be too confusing for user and error prone.
Main: Implement metafile saving

Use dump functions to convert whole state and store it into configuration file
right after processing.

The file will contain ebook metadata and url links. In addition, paths to the
downloded and transformed files are stored too. This will allow us to stage
ebook creation later on. First download, fix issues preventing transformation
and only then transform and generate epub.
Main: Implement download functionality

Add download() function into Book and Chapter class that makes sure that work
directory and appropriate subdirectories exists and then downloads url in there.

If file was already downloaded, skip redownloading. Later on, we might implement
redownloads, but for now it is not necessary.
Main: Add utility functions for workdir handling

Implement Book::workdir() function that makes sure that work directory exists
and that it contains all subdirectories that are needed.

Also implement target() function for generating original and transformed file
paths from url, workdir and optional prefix.
Main: Reimplement URL transformation

Implement transform() function in Book and Chapter classes that loads downloaded
HTML from work directory and applies XSL transformation on it. Information about
result file and its encoding is stored in the YAML file for further processing.
Hukumusume: Fix regexp for local test files

If local html file lies in path that contains string 'hukumusume', correct XSLT
file will be selected and used.