added ModuleProvider for implementation loading
added missing tokens for 'else', 'long', 'double' and 'string'
added first version of lexer contract, should be extended for concrete implementations