HACK: Add sleep to repl loop

        - Add sleep to repl loop because fgets doesn't block
        - This is just a workaround to prevent the app from
          spinning up to 100% CPU
Add thoughts on testing
Remove repl

        - Join web server thread instead of repl
        - Remove references to repl
        - Add initial placeholder tests for server since
          they didn't exist before this refactor
Update files to refer to lua_modules

        - Move lua files to lua_modules repo
        - Add lua_modules subtree
Add initial script to run all tests
Remove obsolete text_format file
Use tags module to write tags

        - Delete obsolete writer.lua file
Delete reader.lua

        - Move person and work constructor to person.lua and work.lua
        - Fix bug in Tags.parse_tags where didn't try converting
          string to a number
Rename web_ui to router
Remove qplan_init
Remove json_format.lua

        - Remove obsolete routes that refer to json_format
        - Update README to show examples of using app/text routes
Rename qplan_context.[ch] to context.[ch]
Rename QPlanContext to Context

        - Also rename qplan_context to context
Rename tcp_io.[ch] to tcp.[ch]
Add shell_utils as subtree
Make filter_track.sh generic

        - Also rename filter_track.sh to filter_pf.sh
Add comment on merging refactor branch
Remove printf of websocket message

        - Remove debug printf in qplan server