Added asynch mode to readXxxFile and transform

Since readXmlFile, readHtmlFile and readXsltFile
will block on filesystem calls these are given
an asynchronous mode.

XSLT transformations can be compute intensive and
for this reason transform has alse been given an
asynchronous mode.

Synchronous mode
readXmlFile(filename) -> document
readHtmlFile(filename) -> document
readXsltFile(filename) -> stylesheet
transform(stylesheet, document, parameters) -> transformedString

Asynchronous mode
readXmlFile(filename, function done(document) {})
readHtmlFile(filename, function done(document) {})
readXsltFile(filename, function done(stylesheet) {})
transform(stylesheet, document, parameters, function done(err, transformedString) {});

Unit tests have also been added to prevent regressions
in the synchronous modes and to describe the behavour
of the asynchronous modes.