ref: fe77fcfc5562453e6a408a337bb93ffe240cf94a clinte/src d---------
check if $EDITOR contains flags before calling

If it contains flags, split by whitespace and pass them in as arguments
to std::process::Command. Otherwise, just pass it in as normal. This was
causing a panic/abort.
moved hashing to shellscript to check for posts

removes dependency on sha2 crate and allows users
to choose their own hashing algorithm easily.

now copies clinte.json to $HOME/.clinte.json once
the posts are viewed. a shellscript can be used to
compare the hash of the global clinte.json to the
hash of the copy. an example script is supplied.

on `make install` the example script is installed
to /etc/profile.d/, where it will be run for users
on login.
test for hashing bits
recording hash of posts file in homedir

This will facilitate checking for new posts on login.
moved startup timer to end of execution, as run timer
configurable line wrapping (80 default)

disabled when set to a value below 10
testing create/delete
extensive rewrite to use json for storage:

sqlite3 requires the directory where the database resides to be
writeable by the user. This presents a problem on multiuser UNIX systems
where they may want to limit areas where users have write access.

This rewrite totally scraps the sqlite3 database in favor of a pretty
simple json file consisting of an array of posts. flock(2) locking is
used to synchronize access to the file and make sure two clients aren't
trying to write to it at once. The locking is fairly granular right now,
but later I may change it to using a single lock for the duration of
execution since race conditions are *possible*, if unlikely for the
purposes of clinte's intended use.
added test for tempfile creation
post ID can be specified as an argument. if absent, user will be prompted
prepopulating editor with post body when editing
editing a post calls $EDITOR
removed panics and refactored error handling

Using a helper function to handle fatal errors
Displays the simplified message if an error condition
occurs. Displays both the simplified and the raw error
message if -v verbose logging is enabled.
cleaner error handling and verbose logging in main()
removed panics from logging initialization
hiding some log messages behind -v flag
moved check for val of $EDITOR into ed::call()

Also removed some allocations from call() in the form of unnecessary
string clones.