Update 'correct' command

1. correct_reads.c: fix bug printing wrong opening bkmer
2. correct_reads.c: print read bases (in lowercase) instead of N
3. ctx_correct.c take gap_variance, gap_wiggle (-d,-D) as cmd arguments
4. libs/cJSON: store numbers as `long` instead of `int`
5. db_graph.c: add db_graph_next_nodes_in_col() useful function
6. read_thread_cmd.c: only use max_context 1 if no paths loaded

Other:
* Fixed some warnings from CoverityScan
Bug fixes for ctx_reads; Memory calculations fixed for all commands

Fix memory issues with all commands:
- all commands now include sizeof(BinaryKmer)*8

seq_reader.c:
- compare read names without truncating them

ctx_reads.c:
1. add single-ended output file, even with PE input
2. add output lock
3. fixed bug using nthreads instead of MAX_IO_THREADS dropped some files
4. fixed bad assert on is_pe (can have SE reads with PE interleaved file)
5. fixed seg fault on incrementing read_counter
6. fix bug exiting on success instead of error (!err_occurred)
7. create directories for output path
8. default to FASTQ output
9. count number of SE + PE reads
GPathStore memory calc improvements

0. Multiple by 10X for ctx_build.c sequence input, don't use to set min
1. gpath_store.c create with specified num_paths, path_bytes
2. gpath_hash.c + gpath_store.c: Print memory stats when out of memory
Fix ctx_thread statistics, set output buffers

0. Fix bug setting num_kmers_with_paths when threading reads
1. Open all files using futil_[gz]open_output() to set buffers
2. use DEFAULT_IO_BUFSIZE as global input buffer size
3. Added print_stats functions:
 gpath_set_print_stats()
 gpath_store_print_stats()
 gpath_hash_print_stats()
Improve mem calc for loading multiple path files

ctx_thread.c: Fix command line argument shortopt values
gpath_save.c: sort paths before saving
Use -l/-L to specify min/max fragment length instead of insert size
Update GPathHash->num_entries
Multi-threaded gpath_save()
gpath_save(): Only flush buffer when we have 4MB of data
Fix bug in printing sorted paths; Tune memory GPathSet allocation
Save distribution of fragment lengths + seq gap diffs

1. ctx_thread.c + ctx_correct.c:
- record fragment length and sequence gap size
- summarise results and print to screen
- save distributions to file

2. Improve ctx_thread.c memory allocation for GPathSet+GPathHash
Fix memory calculation issue with ctx_correct.c
Record same CorrectAln stats in ctx_thread and ctx_correct
Bad memory access bug
Added -f,--force command line option

Added -f,--force cmd opt to all commands to overwrite output without error
Added -M,--matepair <FF|FR|RF|RR> instead of --FF,--FR,...

gpath_checks.c: multithreaded gpath_check_all_paths()
Merge ctx_{reads,correct}.c seq printing -> seqout.{c,h}

seqout.c: creates directories if needed and removes all files if creating one
          file failed. Can print in both FASTQ and FASTA format.

Also allow single input sequence files with colons (:) in their name
Fix --force issue in ctx_build.c
Added -q option (Fixes #3)

Added -q,--quiet option to all commands
Renamed -q,--fq-offset -> -O,--fq-offset
Use seq file formats as defined in seq_file.h
FileFilter maps fromcol->intocol; Clean up file handling

file_filter.c:
- FileFilter no longer contains a file handle. Only stores colour mapping.
- Store fromcol and intocol arrays, instead of single array

file_util.c:
- atomic create/open with futil_create_file()
- clean up file handling

graph_reader.c:
- fix bug in loading multiple graph files, should OR node_in_cols, not cpy!

graph_file_reader.c:
gpath_reader.c:
- opening a file calls die() on error - no fatal argument anymore

test/run.sh:
- run all test Makefiles
- fixed multiple bugs in Makefiles and command line issues

libs/string_buffer.h has been updated to use MACROs for simple functions
- required updating fields {buff,len}->{b,end}

Several small bug fixes including command line arg parsing + fixing memory leaks