Clarify that line/column numbers are byte offsets.
Minor rewording in README
example_client sends goto requests

Also requests for defined subcommands.
Minor extra comments for example_client
More docs on ycmd behavior
Relicensing example code under Apache2
README rewording.
More docs on ycmd internals
Fix warning on CMake 3.0
Update submodule jedi e66f2d8...54dce0e

* jedi e66f2d8...54dce0e (235):
  > fix strange issues of Python's std lib tokenizer, might be in there as well (not sure, cause I modified a lot). fixes #449
  > moved test_token to test_tokenize
  > test for #414 which doesn't seem to be failing anymore.
  > isinstance checks now also give you type hints in class contexts, fixes #241.
  > refactoring in dynamic param searching
  > comments
  > builtins shouldn't be unique if called by compiled.create
  > tests for py__mro__
  > Fix an issue with CallSignatures: If used in a longer statement, it could happen that parts of the statement was still evaluated, but the call signature is only valid at the cursor.
  > fix a few small issues that remained in the tests
  > CompiledObjects should execute everything when reading the return information from docstring (because it's always types, not values)
  > elements in tuples/lists in docstrings were not executed.
  > change tests that provided wrong instance information
  > actually start checking if the integration tests are instances on both sides of the comparison. This wasnt necessary for just autocompletion, but it's way more important now.
  > simplify a lot of the current InstanceElement behavior, because we know now, that there's either a Statement or a Function inside (or maybe some other parser objects like an Array.
  > wrap instance element creation so that it only contains functions and statements, not CompiledObject or Instance.
  > Calling an InstanceElement of an Instance of CompiledObject doesn't raise an error anymore. Yes, it's really that complicated.
  > A module shouldn't be callable.
  > Nicer usage of py_call within InstanceElement and Python 2.7 compatibility
  > remove a very old function call in FunctionExecution that had no effect
  > get rid of the evaluate_generator param
  > Executable -> Executed
  > get rid of the whole is_callable stuff, because now we can just check for hasattr(obj, 'py__call__')
  > simplify evaluator.execute, because now everything is using py__call__
  > fix most issues related to the py__call__ stuff and generalize it.
  > further progress in changing to py__call__
  > start switching to a more python similar approach of naming, start by naming execution stuff py__call__
  > always operate on class in super and not on an instance. that's the proper way.
  > Merge branch 'dev' of github.com:davidhalter/jedi into dev
  > using super() in actual executed classes wasn't possible. fixes #421
  > replace get_super_classes with py_bases
  > added a few EuroPython sprint guys to AUTHORS.txt
  > temporary SuperInstance class to eventually handle super. But need something like mro() resolution first.
  > incomplete functions shouldn't cause any trouble. fixes #429.
  > Added note about numpydoc package
  > Merge pull request #441 from davidhalter/dynamic_inheritance
  > Merge pull request #451 from davidhalter/issue436
  > Small doc fix
  > Added docs for numpydoc docstrings (fixes #450)
  > Merge branch 'add-numpydoc-support' of git://github.com/immerrr/jedi into dev
  > Merge remote-tracking branch 'origin/travis_py34' into dev
  > Merge remote-tracking branch 'origin/namedtuple' into dev
  > Merge branch 'dev' of github.com:davidhalter/jedi into dev
  > remove the scope_names_generator stuff again. We should enable it somewhere in time, but for now it just breaks tests.
  > little edge case of modules that don't have a scope_names_generator, which is unfortunately missing, but not really used in Jedi. At europython's hackathon we played with it and @scoder added a small script to cython/Cython/Compiler/JediTyper.py, which makes it possible to add Cython types to a Python script.
  > set changelog date for v0.8.1 correct
  > Merge remote-tracking branch 'origin/master' into dev
  > Don't warn on addition of an int literal plus an unknown int number.
  > check not only - but also + for numbers.
  > fix the operation test where static analysis reports additions of ints with non-ints.
  > Operator fixes. Subclass of Simple, now.
  > it should be possible to find the origin of an operation, if it's a faulty one (static analysis)
  > 1 + '1' TypeErrors are now detected, but not shown in the right place
  > renamed company-jedi to anaconda-mode, cc @proofit404
  > static analysis tests for the 1 + '1' test
  > Merge branch 'linter' of github.com:davidhalter/jedi into linter
  > change the default linter command from 'force' to 'linter'
  > unicode issues with docstrings should be gone, fixes #420
  > added a test for hex value issues in docstrings, see #427
  > use the new implementation of splitlines all over the code, fixes #424
  > new splitlines implementation to get rid of the ugly splitlines we now have as well as (partially) the issue with form feeds
  > test for #424, issues with form feeds
  > dicts should not be used to check against in get_defined_names, because they cannot contain a defined name (lists and tuples can) so just ignore them., fixes #417
  > test for #417
  > another parser issue, very much related to the last one. sometimes a None element was used as a token.fixes #418
  > def/class keywords after an opening parentheses led to empty arrays without closing brackets, tests & fixes #416
  > parentheses checks in the fast parser (tokenizer) have been improved to really cover all cases. real fix for davidhalter/jedi-vim#288
  > parentheses should be ignored when calculating the indent of a new block in the fast parser, fixes davidhalter/jedi-vim#288
  > merged dev and linter
  > fix a small issue in the alternative test runner
  > test for parser issues with parentheses indentation, see davidhalter/jedi-vim#288
  > Remove some get_defined_names methods, that are not needed anymore.
  > finally able to remove _get_defined_names_for_position
  > cleanup NameFinder.scopes, fully use scope_names_generator.
  > more consequent usage of scope_names_generator
  > also add scope_names_generator to the iterable module classes, as well as cleaning up some old scope_names_generator stuff
  > replace get_defined_names with scope_names_generator in a lot of places (the cleanup still needs to be done, though).
  > change test results, because of inserts in another test file
  > use scope_names_generator in completion api as well. hopefully the last __file__ related issue :)
  > Also update the changelog temporarily.
  > Bump release to 0.8.1-final0, because we're doing a release soon.
  > pre-alpha notice in static analysis API
  > scope_names_generator now works with modules perfectly well.
  > fix issues introduced with defined_names.
  > Fixed __file__ issues by always applying a ModuleWrapper in the global scope lookup.
  > somehow temporary solution to enable completion of __file__
  > fix a multi line issue of var_args with an error token or newline in the beginning.
  > multiple files should be scannable in the main analysis API.
  > string prefixes are now recognized by the backwards tokenizer
  > exceptions were ignored in jedis static analysis. They shouldn't be.
  > fix dict issue with **kwargs use
  > ExecutedParams should never be additionally faked, even if they are the first params. They have been legitimately created by a caller.
  > fix a ModuleWrapper with StarImports. Now all modules are wrapped.
  > types also add to completions, also for compiled objects. removed a few lines of code that complicated the process as well.
  > json.load[s] shouldn't return any results. fixed by overwriting the method
  > custom copy.copy and copy.deepcopy implementations to not confuse autocompletion (just return the first param)
  > std -> stdlib
  > fix indexing issues for multiple index options
  > make it possible to access pdb with 'python -m jedi force --pdb'
  > setdefault fix
  > Also issue warnings if setattr is used in a class instead of an error
  > Add __getattr__ checks with proper inheritance.
  > jedi issues now warnings instead of errors for AttributeErrors that happen in instances with __getattr__/__getattribute__ methods
  > preparation for warnings in static analysis
  > fix string/array (sequence) multiplications with integer.
  > change the implementation of compiled.load_module and always use the sys.modules cache after an import, because it's easier. Doesn't require any logic.
  > add a setting auto_import_modules to fix autocompletion for modules that use setattr and companions a lot. fixes #151
  > make a translation from file system paths to dotted paths possible
  > memoize sys_path modifications
  > submodules need relative imports not absolute
  > submodules are automatically indexed without actually importing them. fixes #413. However, this is not a 100% correct Python behavior. Python behavior would be to follow ALL imports in all modules (recursively) and check if the module was imported. However, that's a lot of work, that would slow down autocompletion. For now it's better to have no false positives in flaking and to ignore a few attribute errors.
  > repr improvements
  > fixed inheritance for exception checks
  > fix except: usage in analysis
  > jedi should be able to detect exceptions even in except X: statements
  > fixed for loop in exception issue combined with usage of an exception variable
  > exception elements are always instances
  > changed the way how the dynamic param function searches it's parent scope, to enable smooth list comprehension following
  > support for completions on return statements.
  > temporary solution for completions in asserts
  > introduce an is_scope function to make it easier to work with scopes
  > fix list comprehension issues in nested parentheses.
  > fix issue with list comprehensions in function calls
  > manifest was missing the fake paths, which makes the last release a bad one. This means basically that in the last (few?) release(s) the stdlib was not correctly supported.
  > replace _sre fake module literals with undefined types.
  > fix issue with reordering var_args
  > reorder var_args if named arguments are in front of *args.
  > fix function execution mutable list issue
  > function repr should only include the decorated function if it actually is one.
  > message improvement for param failure
  > *args without self but still an implicit self from a method decorator
  > further test for list comprehensions
  > fix list comprehensions. they were not implemented in a good way
  > work in progress refactoring to make ListComprehension a sublass of ForFlow
  > list comprehensions should be able to serve as an input for dynamic params as well.
  > hasattr checks working now, #408
  > hasattr test for static analysis, it's a common idiom.
  > fix issues with tokens in expression list
  > fix issues with the previous commits (broken tests)
  > fix issues with generator comprehensions used directly with a send() call or something similar
  > tests for generator to tuple assignment as well as generator comprehensions
  > make generator comprehensions work
  > fix issues with equal names before and after listcomprehension
  > get rid of is_list_comp boolean in favor of a direct check of ListComprehensionFlow
  > create a ListComprehensionFlow, to make the distinction between ForFlow and list comprehensions clearer
  > test: list comprehension name resolve should not include its own definitions
  > instance issue with param static analysis
  > fix a default argument issue
  > erroneus star arguments warning
  > cleanup
  > Wrong var_args with a star star function.
  > add a merged array class to account for array additions
  > add comments to the *args/**kwargs merge code
  > disable two failing multiple value tests. These are things jedi is not able to detect at the moment. It's not a huge problem, but it would be very nice if we could detect these as well. But there would be a need of restructuring var_args unpacking.
  > raise multiple key errors also if they are an input to kwargs
  > temporary very unfinished solution for the *args/**kwargs combination problem, if they are used in common with dynamic params. This doesn't solve the issue entirely, but it's at least a start and will probably solve all autocompletion issues. However, static analysis needs a little bit more than that.
  > fix for kwargs params
  > small update on multiple value named argument type error
  > get dicts partially working
  > fix issues with empty *args as inputs
  > handle *args arguments the right way.
  > multiple values refactoring in params
  > if there's a func listener, stop the execution of a function. This solves the issue of nested *args that were reported as having too many params in static analysis.
  > nested functions with *args should only raise an error if there's well defined input.
  > add a new static_analysis file to test star arguments separately
  > fix calling_var_args with tuples
  > detect origin of a call in case of missing params. This is important, because the user doesn't care about decorators in between.
  > add ExecutedParam instead of using copy.copy
  > use the internal api to get a param name instead of doing crazy stuff
  > add multiple values for keyword type error detection
  > small corrections in too few argument errors
  > better error reporting for static analysis
  > fix for the newly created keyword/default tests
  > keyword/default param tests
  > improved static analysis found mistakes in its own test suite
  > param.py doesn't seem to be needing some default value checks
  > some param refactorings.
  > unexpected keyword arguments detection
  > new named arguments tests for static analysis
  > move a closure out of get_params
  > first version of too few params detection
  > first version of too many arguments detection
  > remove an unimportant test case that showed strange unreproducible behavior on travis.
  > check for 'if foo is not None' checks in the NameFinder. Solves the issues with the subprocess library.
  > finder docstring and naming improvements
  > renaming of an unclear variable
  > update pickling version, because we have changed some things about the KeywordStatement a while ago
  > % operation returned both left and right side, but only the left side is really important.
  > more extensive __file__ tests, #408
  > a (temporary) solution for the __file__ access issues in imported modules, see #408
  > empty reversed issue, fixes traceback of #408
  > fix test issue with python 2.7
  > Improved error messages for AttributeErrors, however not a final version #408
  > improved import positioning errors in static analysis
  > better knowledge in the importer where the import names originate from
  > custom message capability for analysis
  > decorators should also be included in the static analysis
  > static analysis start positions are now tested
  > list comprehension static analysis test
  > test for is_nested failure
  > fix returns/flow command edge cases
  > new way of gathering statements to evaluate for static analysis
  > don't raise attribute NameErrors in all for loop name definitions.
  > linter output changes - #408
  > recursive file paths for the temporary linter api - #408
  > Using python -m jedi force <path> you can use the linter for now.
  > few NameError tests
  > static analysis is now able to tell the difference between NameError/AttributeError
  > sorting the statements for analysis. we need to be able to reproduce results.
  > Small adjustment in Interpreter completion to be compatible with static analysis
  > None issue fix for static analysis
  > except can also catch multiple exceptions in one statement
  > try/except test for static analysis (duck typing should not cause jedi to report mistakes)
  > if something catches an exception, ignore that report
  > simple generator static analysis subscript check
  > refactor general array lookup method get_index_types
  > strip_imports -> follow_imports
  > imports cleanup & documentation
  > fix static analysis for nested imports
  > move is_nested check from evaluate.imports to the parser
  > pytest -> ignore static_analysis folder
  > interpreter cleanup, use proper parents
  > statical analysis shouldn't report the exact same error twice
  > add tests for attribute errors
  > more import-error detection tests
  > static analysis import tests
  > improved static analysis test base
  > testing structure for static analysis.
  > ImportError detection
  > removed a few debug things.
  > Merge branch 'dev' into linter
  > Merge branch 'dev' into linter
  > small fixes to the analysis.Error class.
  > dive further into following imports, etc
  > static analysis prototype decription
Merge remote-tracking branch 'upstream/master'