Use users table for all customers (visitors and registered)

Also fix cart serialization issue.
added logic to create bot user for non human originated requests
added function to idnetify bot user
added static caching of key data in routines that are called many times
added meta key for watchdog timout of temprary users
adjusted sql to manipulate watchdog timeout value and delete expired records
validate customer checks to see if temporary customer still exists before treating customer cookie as valid
fixed typo in comment
when successful/unsuccessful purchase is recorded put the customer profile id into the purchase log and make the profile non-temporary so that the information in it can be used by the store, and perhaps it can be converted to a logged in user at a later time
the return value from the update query isn't useful, so don't get it
expanded the bot identification logic
make wpsc_is_a_bot_user() public to allow it to be checked by other functions
statically cache the result of wpsc_is_a_bot_user() to avoid performance cost of recalling
fixed bot user conditionl bug and typo in function name
changed bot checks to case insensitive
rss requests from non-logged in users are treated as bot requests
fixed infinite recursion bug for bot users
removed check for ajax request without customer cookie because
the first time we see a request from a user will likely be an ajax request
whenever page caching is being used
added bingpreview to the test of bot names that don't generate unqiue users.
Before creating a new user id check to see if a user was created coming from
the same ip+port with an indentical user agent in the last half second.
tries to handle the case where parallel http requests come the the server that would
cause multiple user records and carts to be created.

also changed the agent string for bing preview to preview to also pick up the google search preview requests as bots
removed client port from the uniqueness check because apple browsers will parallelize
connections to common web server across multiple origin ports
Fixed recent user time check, was using microseconds rather than fractional seconds for compare
For posterity, and someone smarter than I to improve, added comment explaing the duplicate user check rationale
Merge Jeff's changes for PR #621
Moved the cart item class into its own php file, updated the file comments
Include cart item class php file that was split out of the cart class php file
Deprecated cart item meta functions that sent data to central meta data table