Abstract everything.

All common code no longer references sublime.  The reactor (select) is now its own class.  The protocol is its own thing.  Handlers know what to do with a protocol.
forgot about the chat deck
fixed not syncing files at start
don't save if not populated
save bufs on room info if we fetched them
add back the old status line about where we are connected
Squashed 'floo/common/' changes from e041249..ae53363

ae53363 backport the ssl handshake change from sublime master.  Also, cleanup some reconnecting logic.
d628f24 remove unused file
cec3bd0 merged the common code with that from master
9473a99 use yes-or-no, add joined workspaces to persistent info
eac8693 many fixes and cleanup- most importantly, we now apply patches.
ef8f7cb fix get bufs
6016e78 cleanup
7d8ed5e fix highlights and bind a random port
ca35af9 consistent interface (fix highlights)
0bddd36 fix the yes or no prompt to show stuff in emacs. remove debugging code
3ffb7e5 I didn't know that such a thing was possible- for a function to return, and to reenter it from the inside!
49884be testing code... so confused
209d7d2 Add ability to return a value from a wrapped function.  Moved inline callbacks from room_info to the lowest level possible. ie, to the level of ok_cancel_dialog itself (ie, room_info has no yields and remains unchanged).
2a81ea1 Fix inlined_callbacks to not return a tuple when yielding a function.  The fix is slightly dangerous, but send only takes a single argument (ie, python sucks) so I don't see any other solution.  We now join the room with no more exceptions. Other various fixes/cleanup.
e95b929 now using inlined callbacks!  Fixing up yes no dialogs to make use of this new feature.
f88988b new inlined callbacks framework
545121d now handling room info without errors!
c4227c6 NotImplementedError, not NotImplemented
5edd021 we now successfully connect to the backend... still need to sort out who owns what data
6053637 broken plumbing
f0d1bb7 now properly accepts incoming connections once again
a3f301d now make remote connection to the backend after we are told to do so by emacs
b9779d0 moved all emacs interfacing to the emacs_handler. moving out other stuff to the emacs specific floo handler.
af074b8 asf
c0c5a44 nothing should be printed before we accept connections
31e3ea2 now accepting incoming connections
e1e74fd now working main loop
8e6a589 reactor now has tick that blocks forever.  Process starts up again with no exceptions.
5b2b8e4 temp
532eccc rearranged everything ... imports work again
411b8c4 abstraction
295e18e merge
915591e add back the old status line about where we are connected
324cd0a save bufs on room info if we fetched them
cdb8ba6 fixed not syncing files at start
2aba767 Abstract everything.
67a9a5d Minor cleanup
f18111d Add a setting so that people can disable mirrored saves
3a6eb90 Prevent ignored things from being added accidentally by people who open and save them.
49c5b8f Throw git commands in readme.
da21a15 Merge commit 'fe16ad40cd186fc9a3b1f3d61089f2b76f06acdc'
c5c00cc Merge commit 'd659d10d1877ee5683451620b9c26d15264f2400'
dd734ad Don't annoy users with this error message.
c257f4d don't spam windows users when we can't delete a parent dir
596d3d6 Kill old code. More exception handling.
9bc735a Fix errors when calling create_buf with a file instead of a dir. Fix a few exceptions that to_rel_path can raise on Windows.
c8004a7 fixed bug with unicode in ignore
347472f Various bug fixes and better logging.
e45ca5f Show room info message after we're done uploading.
21ff4e8 Better names. Better ignore message.
c0b5d79 One shot
ba38411 now we don't open an infinite number of tabs.
3475226 new follow in splits command... very hard to make sublime not crash.  probably needs some cleanup somewhere
9bb0a98 Hmm... this is a sign of a deeper bug, but fix the immediate problem for now.
43c1036 Merge commit '5472c929928d970562600a17013310030348196d'
ad4ad69 Merge commit '0817845356b4c6deed4046d94d4a36b68b4bf713'
dd2f0cd Send md5sums along. Fix bug where we were calculating the wrong md5sum
1e1b369 Merge commit '59a5a4867f8c1ca6482030e85b0852c6f8e642d7'

git-subtree-dir: floo/common
git-subtree-split: ae533638b615a5c4236a11ca35fd38ed3b1a5682
upstream merge
Squashed 'floo/common/' changes from ae53363..b8bfdfa

b8bfdfa Handle new workspace URLs.
758f2a5 Fixed inconsistent import of reactor
259d73d no more import errors in python3, but mysterious failures remain.
77b5adc fixed creating new workspace bugs.  Now check permisssions before sending stuff.

git-subtree-dir: floo/common
git-subtree-split: b8bfdfae5834ce76bbf0c3732c204562eed8436b
pull in changes from upstream (fix imports)
implement missing methods for interface
Fix exception
Delete unused files
Fix bug where reloading these modules made it impossible to catch HTTPErrors
Fix circular import and other import issues. Don't print stuff.
Merge master. Fix conflict.
Set read only needs to be on the view.
fix create/retrieve account
Change some logs to debugs. Fix highlights. TODONE.
Print correct things if plugin is loaded or not.