A Self-Attentional Neural Architecture for Code Completion with Multi-Task Learning