changed firstDateInSameMonth to reflect the difference between 0-based month number return by monthOfYear and the month field in NSTimestamp constructor (which is 1-based). Also changed the day field to be 1 instead of -dayOfMonth(value) + 1

Testing this out in a scala worksheet shows return values what I would expect (compared to joda methods) I don't know if this is right or what is intended, but the old return values were wrong.

object TimeTests {
  val t = new NSTimestamp()                       //> t  : com.webobjects.foundation.NSTimestamp = 2014-03-05 02:45:35 Etc/GMT
  val s = ERXTimestampUtilities.firstDateInSameMonth(t)
                                                  //> s  : com.webobjects.foundation.NSTimestamp = 2014-03-01 05:00:00 Etc/GMT
  val e = ERXTimestampUtilities.firstDateInNextMonth(t)
                                                  //> e  : com.webobjects.foundation.NSTimestamp = 2014-04-01 05:00:00 Etc/GMT
  val f = new DateMidnight(t).withDayOfMonth(1).toDate()
                                                  //> f  : java.util.Date = Sat Mar 01 00:00:00 EST 2014
  val l = new DateMidnight(f).plusMonths(1).toDate()
                                                  //> l  : java.util.Date = Tue Apr 01 00:00:00 EDT 2014

}