Added perl module to parse cortex breakpoint output
Merge branch 'master' into develop
Added Perl Module and example script to parse bubbles files
ctx_rmsubstr.c:
- new command to remove substrings and duplicate strings from a set of strings

file_util.c:
- added futil_open_output(), futil_gzopen_output() for convenience. Open stdout
  if path is "-". Print status updates and die with appropriate message on error

seq_reader.c:
- added seq_load_all_reads() to load all reads in multiple files into a buffer

ctx_breakpoints.c:
- improve memory calculation by including graph annotation memory with graph mem
- reduce amount of memory required for bucket locks (we were wasteful before)
- truncate and remove commas and colons from chromosome names

ctx_subgraph.c, ctx_coverage.c:
- update usage message to match current behaviour

kmer_occur.c:
- we do not need to require db_graph->col_edges be allocated
- added check for allocation of bktlocks (for multithreaded graph modification)
- added check that we do not have more than 1 edge colour
Fixed rmsubstr comparison condition; Added tests
Added script to check breakpoint files are valid
Add missing test case files for rmsubstr [skip CI]
Fixed breakpoint coords reported
Fetch longer breakpoint flanks; Fix bug in breakpoint check perl script; Add extra checks
Fix binary_kmer.h for MAXK >= 95
Added --out <out.ctx> arg to ctx-join command
Re-wrote all command usage and added short+long options for all arguments
Multithreaded ctx_clean and associated functions

ctx_clean.c:
- made multithreaded with two-step:
  1. mark graph with multiple threads, then merge threads
  2. clean graph with multiple threads (using prune_nodes.c)

supernode.c:
- make supernode_write_len_distrib() multithreaded

prune_nodes.c:
- prune_nodes_lacking_flag() is now multithreaded
Renamed SortedPathSet -> PathSet for more general use

1. sorted_path_set.c -> path_set.c

2. Split FollowPath out from GraphWalker into a separate header file

3. reduce lock usage in PathHash by exploiting the fact that items are never
   removed from the hash. We can traverse a full bucket without acquiring
   the lock first.
Added thresholding paths by count; Added Circos plot generation

Highlights:
1. path thresholding
2. circos plot generation
3. Coverity Scan, HipChat notifications and mac os x travis builds
4. ctx_thread.c handles cmdline arguments with getopts - begin phasing out cmd.c

== Cleaning Paths ==

ctx_thread.c:
- rewrite to load only accept one graph colour on the command line
- handle command line options itself, instead of using CmdArgs

generate_paths.c:
- update more stats about seqeunce coverage

graph_paths.c:
- sets path count in byte after path sequence in PathStore
- removes paths below a given threshold when doing removing of redundant paths
- updates PathStore given an updated PathSet

path_store.c:
- fixed bug in _path_store_add_to_hash() where PathHash pindex was not being set
  when loading from path file (.ctp).
- when loading ctp file for read threading, set loaded paths to count 255
- added path_store_counts_histogram() to get histogram of path counts -
  not used yet, should use in calculating threshold.

path_set.c:
- fixed BUG in path_set_slim() where excess paths may be kept
- added path_set_load_counts() to load PathSet counts from PathStore
- added path_set_threshold() to reduce a PathSet to only trustable paths
- added path_set_check() to check pointers are valid

== Other ==

path_hash.h:
- added PHASH_ITERATE() MACRO to iterate over paths

ctx_rmsubstr.c:
- support for reads that start with Ns
- report number of 'bad' reads which lack a kmer of {ACGT} bases
- added additional tests

ctx_join.c:
- add free() calls that were missing on exit

ctx_pjoin.c:
- add -t <threads> option

ctx_place.c:
- got rid of chrom_t type, used seq_load_all_reads() common function instead

breakpoint_caller.c:
- print reference contig names and lengths in header

.travis.yml:
- added coverity-scan* intergration
- added osx and linux compilation
- added hipchat notifications

./scripts/make-circos.pl:
- added perl script to generate a circos plot from breakpoint calls

* Coverity Scan was very useful in catching some bugs that are fixed in
  this commit. Their free service for Open Source projects is very cool.
Update Travis config
Reduce Travis builds with script
Fix bug in Travis CI shell script
Split out infer_edges code

infer_edges.c:
- split out code from ctx_infer_edges.c
- added tests: src/tests/infer_edges_tests.c
- made multithreaded

graph_writer.c:
- added fast graph_write_all_kmers() method

.travis.yml:
- moved scripts into travis/*
- only run coverity scan on: linux + gcc + coverity_scan branch

Makefile:
- RECOMPILE=1 forces recompile every time
Updated Travis CI scripts