Add Prolog Lexer

this closes #28
prolog: Make the atom regex more concise
prolog: yield Literal.String.Symbol for atoms
prolog: bugfix: variables should only contain word chars

This was causing the lexer to be extra greedy and have variables named
things like `Rest)`
prolog: use a shorter demo
Merge branch 'prolog'
don't highight *.xslt as HTML

XML is a better lexer for this
stick text-based fuzzy guessing to 0.5 confidence

And match files containing :- to prolog
make lexer guessing smarter

source analysis can now take advantage of the previous steps'
information.
be far less clever with source guessing

Results under 0.5 are now used exclusively to disambiguate filename and
mimetype matches.  Guessing will return Lexers::Text far more often.
comment on filter_by_filename #doc
rename multi_guess -> guesses
save a reference to the size, not the array itself