Initial stab at doing indentation using SMIE

If it had better docs, that would be much easier. This mis-indents
basically anything nested, but hopefully will be better soon.
Wow, this doesn't work at all (:
Mostly working indentation & parsing!

It misses -> match expressions at the moment. This should be possible
to fix...
Fix indentation for a single -> match expr

Now I just have to fix indentation for numbers, an the second
expression after what it thinks is a funcall. Hrm.
Scratch the "else if" smartness. Elixir doesn't do else ifs.
Fix whitespace & make # the comment marker
Fix paren balancing.
Better grammar & lexer rules for statement separation

This seems to work reeelatively well now! Excited!
Fix "bad face" warning. Your face is bad.
Add : as a quote mark char and ' as a string one.
Add verbosity to smie rules, make it optional.
Fix indent on tokenizer
Add parent for rule to verbose message
Skip all whitespace when encountering a statement-separating \n.

This fixes behavior for multiple newlines.
Remove lurking "semicolon" rule.
Downcase literal strings read from the buffer

It should never be possible to confuse the parser by putting arbitrary
words in source (:
Make tokenizer smarter w.r.t match statements

Now, instead of emitting ";" between match statements, scan forward
and backwards a bit to figure out if we're between them and emit
a MATCH-STATEMENT-DELIMITER token instead.
Try and be a bit smarter about highlighting some keywords
Upcase confusion in lookaround lexer.
Use SMIE in elixir-mode by default.