Replacement of "not equal to" operator, to != from <>
The <> not equal to operator that is used in this code is
depreciated and only in the Python 2.6/2.7 code base for backwards
compatibility reasons (https://docs.python.org/2/library/stdtypes.html):
	"!= can also be written <>, but this is an obsolete usage
	 kept for backwards compatibility only.
	 New code should always use !=."
Replace tab with space (following PEP-8).

When running ./examples/01_basic_functions...py file, I bumped into
a TabError message indicating that tabs and spaces are mixed in the code.
As tab size is ambiguous and tabs should not be used (PEP-8),
I've replaced tab with 4 spaces in all dose files that had tabs present.
replace cPickle import with a try... except.. for pickle.

In Python3, the pickle module itself searches if an optimized version
is available in the system. The user does not need to indicate this to
the system, as in Py2 (by importing cPickle instead of pickle).

See: http://docs.pythonsprints.com/python3_porting/py-porting.html

Also, pickling files are in binary format. Current code reads/writes
files with implicitly assuming it's binary. In Py3, this should be
made explicit in the flag (i.e., "open(file, "rb").
See: http://pythonconquerstheuniverse.wordpress.com/2011/09/07/python3-pickling/

Finally, in dose/simulation_calls.py, made explicit that the
inspect.stack() call is to return the basename only. On my system,
it returns the full path, giving an error and no copying of the script
file to the Simulations directory.

With this commit, Example 01 now works under Python 3.4.2 on my system.
(NB not tested for Py2 functioning....)
Replace xrange() with range()

In Python3, the range function has become a generator, no more need
to use xrange() explicitly. See http://python3porting.com/differences.html

For Py3 code, this changes nothing. For Py2 code, however, the generator
is replaced by a list -- and for long lists, this might clog memory and
result in performance issues. As most (all?) xrange iterations appear to
be over small lists, I don't see major issue with this modification for
Py2 users. (Exception is perhaps dose/dose_entities.py, where iteration
over pop_size is now a list. If pop_size is very large, this might cause
an issue #NEEDS VERIFICATION#

Alternatively, the six module can be used to keep xrange in both Py2, Py3
working as it was meant to be. But this requires installation of an extra
module, which should be avoided if possible.
Replace division operator (/) with true division operator (//)

See PEP-238, and here: https://docs.python.org/2/library/stdtypes.html
In this particular case, it seems that when group is odd, the value
of len(group)/2 becomes a float, which throws an error in Py3. With
replacing the / for // operator, the program runs.

I am not sure why we need to divide group by two here: as I understand,
this is to split the population into two groups -- but I cannot deter-
mine if, in case of odd group length, some organisms are not mating here.

Anyway, this fix removes the TypeError and program runs... Modified in
all (example) files where this line occurs.
Merge pull request #79 from appultaart/Python3_functional

Python3 functional