Phylo.draw_ascii: delay setting stdout as the output handle until runtime

Avoids a conflict with run_tests.py / doctest, where sys.stdout is modified
after the Bio modules are imported (so the original stdout disappeared)
provide some test data
Record all the raw ABI file tags in a dictionary

With input from Mike Cariaso (@cariaso), David Bulger
(@DavidBulger), and Wibowo Arindrarto (@bow).

This is intended to allow advanced analysis of the
instrument-specific tags from the ABI sequencers, see:

http://www.appliedbiosystems.com/support/software_community/ABIF_File_Format.pdf
Phylo.draw_ascii: ensure tree is rendered the same in Py and Py3

Python 3 uses "banker's" rounding, i.e. round(0.5) -> 0, round(1.5) -> 2;
Python 2 uses "sane" rounding, i.e. round(0.5) -> 1.
Result: the little stub used to draw the root did not appear on Python 3.
This commit fixes that, at the cost of some fidelity to the actual tree or
Phylo.draw() image.
Merge branch 'master' of github.com:biopython/biopython
Tutorial: enabled/fixed a couple more Phylo tests
Update QueryResult to handle alternative hit IDs
Add alternative ID querying to tabular BLAST results
Add alternative ID querying to XML BLAST results
Use ' >' instead of '>' for resilient blast-xml alt ID parsing
Also use sallseqid column as a fallback in blast-tab parsing
Rename alternative ID and desc attributes for consistency
Expose 'id_all' and 'description_all' instead of their 'alt' counterparts in SearchIO
Update NEWS
Merge pull request #307 from bow/patch_multiple-hit-ids

Add alternative ID support to SearchIO
Duplicated first contribution note fix
reverting the use of with
removed un-necessary print_function import
reverting the use of with
reverting the use of with