Enhanced conversion

### Complete Changelog (added after completion)

* Add PyYaml, ordereddict and plist_parser to Lib

* Changes to sublime_lib:
    * Add `WindowAndTextCommand` class
    * Add `Settings`, `FileSettings` and `view.ViewSettings` abstraction classes
    * Add `view.OutputPanel` class
    * Add `view.base_scope()`
    * Add `view.unset_read_only()` context handler
    * Add `view.extract_selector()` context handler
    * Add `rel` parameter to `view.coorded_region()` and `view.substr()`
    * Add scroll parameter to `view.append()`
    * Add `path.file_path_tuple()` context handler
    * Fix `view.relative_point()` returning wrong values in certain scenarios

* Rework file conversion (plist <-> json) completely and add YAML to form a "triangle"
  Note: Build system has been renamed to "Convert to ..."

* Add syntax definition and dynamic completions for YAML syntax definitions

* Add `rearrange_yaml_syntax_def` command that rearranges and sorts YAML syntax definitions sanely

* Fix #14
* Fix #7: Random exceptions for setup.py
* Fix #19 and make parsing plists work on certain Linux distributions by using another plist parsing lib
* Fix eventual bugs when the package's folder is not ecactly "AAAPackageDev" by determining that dynamically
* Allow " " and "," in sublime completion syntax's "scope" key 
* JSON syntax definitions now support the "@" symbol in goto anything (as well as YAML) and highlights JavaScript-like comments, which can also be toggled
* Add comment toggling for keymaps (closes #13)
* Fix highlighting of comments within sublime settings arrays
* Fix "*" not recognized in a sublime setting name
* Fix highlighting comments within "keys" array for keymaps
* Fix #18: No highlight of "keys" key when it is at the end of an object
* Fix #15: Weird highlighting of build variants
* Fix highlighting of non-alphanumeric simple completions in completion files
* Highlight `null` in sublime settings
* Revamp Raw Snippets highlighting


### The following is at least one year old and completely outdated

----


So, here is my attempt on a new file conversion method. I kind of like this because it is *dynamic*.

Also not a few new functions for the sublime_lib. Since I am using them anyway in this package I thought, why not just making them accessable for any plugin?

I'm not yet finished, I still have to add build systems, use the new sub-build system (well, I don't fully understand it yet but I think it will be useful here) and make a command that auto-detects the current file. And maybe add the possibility to auto-detect the target file type, though I don't know how I should do that (especially for json since it has no comments and the like).

The reason I already made a pull request is so that you can test this thing. I made it as functional as I could get it without adding more features.

Here is what I used as keybindings to try several (all) parameter combinations:
```json
[
	{ "keys": ["alt+,", "alt+j", "alt+p"], "command": "convert_file", "args": {"source": "json",  "target": "plist"} },
	{ "keys": ["alt+,", "alt+j", "alt+y"], "command": "convert_file", "args": {"source": "json",  "target": "yaml"} },
	{ "keys": ["alt+,", "alt+p", "alt+j"], "command": "convert_file", "args": {"source": "plist", "target": "json"} },
	{ "keys": ["alt+,", "alt+p", "alt+y"], "command": "convert_file", "args": {"source": "plist", "target": "yaml"} },
	{ "keys": ["alt+,", "alt+y", "alt+j"], "command": "convert_file", "args": {"source": "yaml",  "target": "json"} },
	{ "keys": ["alt+,", "alt+y", "alt+p"], "command": "convert_file", "args": {"source": "yaml",  "target": "plist"} }
]
```

Let me know what you think so far.

----

Small update: The above information is pretty much outdated and probably misleading. If you want an updated progress, read the commit messages (only 74 as of now) and follow the comments. Or wait until docs are done.