Oracle integration improvements

This PR aims to improve the current Oracle integration. It's a heavily changed branch and a WIP. Things can break and features can be absent. It will be merged after I believe it's good to go. However I'm thinking to disable all modes and enable one by one. Each mode should be usable and not just a command wrapper whose output is displayed in a quickfix window. It should smarter and the displayed information should be more useful. I'm going to merge occasionally from master. 

Current changes are:

* Use `json` format instead of `pos` format for a richer data
* Base functionality is moved to Vim's `autoload` folder for lazy loading
* New modes are added: `freevars`, `referrers` and  `callstack`