modifed .gitignore to ignore vim backup files and to also ignore emacs backup
files in sub dirs (*~ in place of *.~)
Added a research module which includes
   a function to calculate the cost of a researching a tech level,
   a function which returns the starting tech levels for a race design,
   a function which returns the cost in points of the tech field settings
The first function has a small test suite in test_research.py
more tests for research.py, testing the starting tech for PRTs and LRTs work
for JOAT, HE, and CE, IFE. Also testing the tech costs in points for cheap\exp
fields
Player.__init__() now calls set_base_tech to obtain starting tech for PRT and LRTs
added all of the (non MT) tech as dicts in tech.py. Haven't added a way to determine if a race can
use tech though - nothing in code yet to say dreads are WM only or NRSE cannot have ramscoops etc
added a function to return a dict of restrictions for applicable tech (e.g. Jammer 10 requires IS PRT, FM requires IFE),
added a function which creates a single dict containing the tech from the items_* functions for shields etc, and adds
the restrictions to each one. There is a single unittest in test_tech.py to test the code does combine the dicts appropriately, but
no tests of the data itself. I've followed the template.py techCompleteTemplate to some extent, but as this was mostly data entry I've only
typed in the appropriate data from the manual/in game tech help.
Changed Colony class init in planet.py to store the owning Player,
made the initial mineral concentration for the planets random, and
found the referenced calculation for planet value (in the comment) for
calcplanet value, but it seems to work using the number of clicks rather than
the real values for hab, also allowing immunity to be specified as -1 for the upper
hab, so I've left this function to just return a set variable
Merge pull request #30 from mikeford1/master

hello Shadow Whist