Initial support for paired variant calling using VarScan.

A lot of design and review are needed.

Fixes #65.
Merge branch 'master' into varscan-paired
Add the paired VarScan call to the available callers
- Check the type of data dynamically (length of 2, and all items have a "phenotype" attribute in their metadata)
- Get rid of temp files
- Wrap operations in transactions
No more need for a separate varscan_paired call
Merge remote-tracking branch 'upstream/master' into varscan-paired

Conflicts:
	bcbio/variation/varscan.py
Fixup after merge
Adjust  the shared_variantcall signature to take items rather than
a configuration item, so that both paired and non paired calls use
the same signature.

Port all the users of shared_variantcall to this adjustment.
Add two new convenience functions:

- is_sample_pair: returns True if we're dealing with paired bams, False
  otherwise;
- get_paired_bams: returns the names of the tumor and normal bams, and
their names
Port shared_variantcall and varscan to the new convenience functions
Fix the do.run() call
Use the right file name
Fix file_transaction call for multiple files
Try to handle cases where no result is found
Several changes:

- remove the remove_zerocoverage call because some mpileup files can be
empty, then grep will return -1 and everything will fail
- fix the varscan command line and output filenames
- check if mpileup produced empty files, if so, bail out (or VarScan
  will hang)
Ensure coverage calculations occur within transaction and avoid re-running if present
Improve memory usage for samtools during bwa alignment steps. Avoid over-scheduling memory by sharing between sort in, bwa, and sort out steps
Add documentation on new memory management framework and relationship with job scheduling
Merge branch 'master' of https://github.com/chapmanb/bcbio-nextgen
Release v0.7.2