Replace some uses of map with list comprehensions.

This is a little tweak for better cross-compatibility with
the same code under Python 2 (where map gives a list) and
Python 3 (where map gives an iterator).
Add missing copyright & license text to many unit tests
Adjust sorting of dictionary keys etc for Python 3.

On Python 2 my_dict.keys() is a list so has a .sort() method.
On Python 3 my_dict.keys() is an iterator so use sorted() function.
Fix some print statements/functions to work on both Python 2 & 3
Avoid my_dict.iteritems() in tests for Python 3 compatibility.

Using the iterator method is more memory efficient,
but for the unit tests this doesn't matter and I would
rather have the same code work under both Python 2 and 3.
Avoid another my_dict.iteritems() in tests for Py3 compatibility
Update StringIO/BytesIO imports in run_tests.py

This is enough to run this file unmodified on both Python 2.6+
and Python 3.3
Implement StringIO import via Bio._py3k module

The goal here is to facilitate writing code which can be
run on both Python 2 and Python 3 without alteration via
2to3 (and fixing these imports currently needs 2to3).
Import StringIO via _py3k module in tests