This commit has point doubling implemented, tested and commented. Currently  if using point doubling you can only have an even x in xP. In order to get an odd p you must use point addition of xPPp. This is slightly tedious as is and so the next function im working on will allow you to do any number of Ps.