Revert "Disable closing tickets with empty required fields"

This reverts commit faef421464fefe30aed348fcacfb8fd3f35d1a27.
Disable closing tickets with empty required fields

This will disable the ability for a user to close a ticket when they
have not filled out all of the required fields. Explains the problem to
the user trying to close and directs them to the edit page. Added some
functions to the $ticket class to make it easy to determine the missing
required fields.
Make editing a little less annoying

I find that now since every ticket has to be edited before closing it
when you have non-public required fields, it gets annoying having to
type the required "reason for editing the ticket" every time. When
applicable, this will prepopulate the reason. (eg: "Entered value for
the missing xxx field.") Making life just a little easier.
Make date searching more intuitive

If you entered a date search range from 2014-01-01 to 2014-01-02 you
would only get results from 2014-01-01 because $endtime is set to
midnight. For the same reason, if you search for tickets from 2014-01-01
to 2014-01-01 you would never get any results. That can be confusing for
the end user. Intuition might say just add 86400 to the $endtime
(seconds in 24 hours). But then I realized not all days have 24 hours...
Add the (internal) ability to search by closed date

Now passing a $req array with 'searchDateClosed' set True returns
results for tickets with the closed date in the $startTime - $endTime
range. This allows the ability to gather a list of tickets closed in
date range. Internal ability only. Backwards compatible. Needed for
certain reports in future plugins...