Cleaned up the document component and abstracted a bunch of drag and drop logic out to separate functions. I realized that this component will need to handle a lot of different functionality (drag/drop, content modification, enter/delete/tab keys) so it should probably get split up a bit.