Fix str:padding to work with UTF-8 strings

Thanks to Tobias Hoffmann for the report.

Also add some tests.
Separate function for predicate matching in patterns

No functional change, only make the predicate matching code more
readable.
Fix direct pattern matching

xsltTestCompMatchDirect must match against the original node.
Fix certain patterns with predicates

The optimization for predicates in patterns only supports XSLT_OP_ELEM
and XSLT_OP_ALL. This commit makes predicates on other ops fall back to
the slow direct matching code path.

Fixes bugs #531685 and #538580.
Fix handling of UTF-8 strings in EXSLT crypto module

Fixes bug #692866
Add first test case for EXSLT crypto module

Add test case from bug #692866 by Feoktistov Alexander.
Add tests for crypto:rc4
Memory leak in xsltCompileIdKeyPattern error path

Fix from bug #691548 by Vladimir Marek.