Completion overhaul

- Make the parsing more language agnostic and break into separate module.
- Fix multi-line and path completions.
- Make help and magic handling more consistent.