Merge pull request #1 from limetext/master

Update to latest commit
First try to use Buffer.addObserver().
Revert "First try to use Buffer.addObserver()."

This reverts commit 7838beebe315345aa4712de14efc7d32655bebd2.
Simplifies selection callback
Providing view instead of selection to GetSelectionMessage()
Adds a fastest algorithm when moving cursor (WIP)
Fixes a bug when moving backward
Adds a TODO
Move watched to seperate package, Starting on #285
Resolves #292, Trying to make possible multiple subscribers #285
Also if there is a watcher on a directory and we wan't to watch on of the
files inside the directory to we won't create new watcher
Enhanced watching directroies
if we have watchers on file /a/b.txt and /a/c.txt
After calling Watch() function on /a (The directory)
we will remove the watchers on the files and we will just watch the
parent directory
Merge pull request #431 from emersion/master

frontend/html: cursor improvements
Use separate testdata for watcher
Completed tests for observer
[frontend/qml] Add a .pro to enable translations.
Added type watcher and moved watch functions under created type
Changed watcher package name to watch
Changed tests to use watcher type
Replace DeepEqual witch custom exist function
DeepEqual checks the order to but we don't need the orders
be the same just the matching the items are enough.
TestDelete event was failing because of the lockers fixed that to
Exported watcher type cleaned some ifs
New Watched interface, required by Watch & UnWatch
Introduced new Watched interface with two Path and Reload methods.
before this for watching a path and an action of type func() was
needed but now we should pass a type witch implements Watched
interface. This helps with having multi-subscribers for each path
also removing subscribers are easier now.
Also added new WatchedDir type which implements Watched interface,
This is a helper type for watching directories with no action.