Context2Name: A Deep Learning-Based Approach to Infer Natural Variable Names from Usage Contexts