Added a survey response ID list parameter to survey_response/read.

The new parameter, 'survey_response_id_list', allows a caller to only query for information about specific survey response IDs. This works in conjunction with other parameters, so a list of survey response IDs may be passed along with a username to obtain only the survey resposnes whose ID is in the list and that were submitted by that user.

Closes #209
Added paging to class/search.
Restructured the DB files.

Created new folders in the /db/ folder to represent the different components in our system. Then, updated the JDBC connection to use the new information.
Merge branch 'ohmage-2.10' of github.com:cens/ohmageServer into ohmage-2.11
upgraded to use a mobility classifier that relies on Java objects instead of JSON for its classification method
Merge branch 'ohmage-2.10' of github.com:cens/ohmageServer into ohmage-2.11
Merge branch 'ohmage-2.11' of github.com:cens/ohmageServer into ohmage-2.11
Added CSV output. Added column selection to regular and CSV Mobility read.

Reworked how the constants in Mobility are handled. Then, tested JSON output to ensure it still worked as expected. Then, added column selection to the existing JSON output. Then, added CSV output with column selection. Then, tested. Finally, merged in the new classifier from the main 2.11 branch.

Closes #185
Merge branch 'ohmage-2.10' of github.com:cens/ohmageServer into ohmage-2.11
Updated the version.
Renamed the SQL update to an admin SQL update file.

The current SQL update file for 2.10 to 2.11 needed to be run by a SQL administrator, not the standard 'andwellness' user. This update script migrated the 'andwellness' user and 'andwellness' database to the 'ohmage' user and 'ohmage' database, respectively. This cannot be performed by a regular user.
Fixed a bug in condition validation.

Previously, "no response" values in conditions must be all upper case. Now, the checker will perform the upper case validation.
Created the new 2.11 DB upgrade script.
Merge branch 'ohmage-2.11-user-optimization' into ohmage-2.11
Optimized user/search and user/read.

Restructured the user in both the database and the code. Optimized user/search and user/read by reducing their load on the database. Created a new database query that should be more efficient than the multiple queries being performed before.

Closes #201
Closes #203

Squashed commit of the following:

commit 15b7ec65280e25e59082224fd46285ac81b3f63d
Author: John Jenkins <jojenki@cens.ucla.edu>
Date:   Fri Mar 9 12:35:50 2012 -0800

    Moved UserPersonal into UserInformation.

    UserPersonal recorded the personal information about a user which was intimately tied to how users exist in our system. For that reason, UserPersonal is defined in UserInformation instead of being its own class. The overall structure has not changed.

commit 46e498a5634f35001e83c51b881fefa88f61c514
Author: John Jenkins <jojenki@cens.ucla.edu>
Date:   Fri Mar 9 12:33:28 2012 -0800

    Reworked and optimized user/search and user/read.

    Restructured the code to correspond with the changes to the user and user_personal tables. Then, created a new way to query the information from the database. Finally, reworked how user/search and user/read validate and aggregate their data to reduce the database load.
Updated the user/create documentation.

The documentation previously indicated that the "flags" associated with a user's account were required. This is not the case as they all have default values.
Fixed a bug regarding user creation.

The password and email address fields were flipped in user creation. This has been fixed.
Added the email parameter for account creation.

Added the optional email parameter for account creation. This is still an admin-only function, and when admins create new accounts they do not have to supply a username per the Mobilize requirement.
Created and tested self-registration.

Created self-registration via two APIs. The first is /user/register which allows someone to create an account. It will create a disabled account and an entry in the user
 registration table, and it will send the user an email with an activation link. The link points to the second API, /user/activate. This will implicitly verify the user'
s email address and activate their account. We keep track of when a user registered their account and when they activated it.

Closes #204

Squashed commit of the following:

Author: John Jenkins <jojenki@cens.ucla.edu>
Date:   Thu Mar 15 16:43:47 2012 -0700

    Removed the debug public ReCaptcha key.

Author: John Jenkins <jojenki@cens.ucla.edu>
Date:   Thu Mar 15 16:27:33 2012 -0700

    Added a default value for the from address.

    This should be changed in a real deployment.

Author: John Jenkins <jojenki@cens.ucla.edu>
Date:   Thu Mar 15 16:25:42 2012 -0700

    Removed debugging info for the mail server.

    The /web/WEB-INF/properties/mail.smtp.properties file contained personal information for testing. This is removed and all defaults are used. The defaults will most-likely need to be replaced.

Author: John Jenkins <jojenki@cens.ucla.edu>
Date:   Thu Mar 15 16:25:30 2012 -0700

    Added and updated documentation.

Author: John Jenkins <jojenki@cens.ucla.edu>
Date:   Thu Mar 15 16:13:56 2012 -0700

    Added the account activation component.

    The user can now click on the link and activate their account. This confirms their email address, switches the enabled value to true for their account, and records the time at which this happened.

Author: John Jenkins <jojenki@cens.ucla.edu>
Date:   Wed Mar 14 18:18:20 2012 -0700

    Changed the registration ID to a hash.

    Before the registration ID was a random UUID and the user's username was being added to the URL as a second parameter. Now, there is only one parameter for the activation URL that is sent in the email and that is a registration ID that is a hash of the username and a random UUID string.

Author: John Jenkins <jojenki@cens.ucla.edu>
Date:   Wed Mar 14 17:35:54 2012 -0700

    Finished user registration.

    Users may now make registration calls to the server for new accounts. This will result in their account being disabled, their account be associated with the public class, a registration row being added to the registration table, and the server will send an activation email to the user.

    There is a requirement that the server must have access to a SMTP mail server, and they must populate the mail.smtp.properties file with this information.

Author: John Jenkins <jojenki@cens.ucla.edu>
Date:   Wed Mar 14 12:53:04 2012 -0700

    Fixed the ohmage DDL.

    The ohmage DDL still had the email in the user_personal table as well as the JSON data. The JSON data has been removed, and the email has been moved to the user table.

Author: John Jenkins <jojenki@cens.ucla.edu>
Date:   Wed Mar 14 12:25:44 2012 -0700

    Initial commit.

    The registration has been added to EasyPost but it is undocumented. Currently, it can validate the request, create the user, and send an email. Next, we need to add a table for storing the registration values with a time the registration was generated and the time it was accepted. Then, we can move onto the other half of registration which will confirm the request and activate the account.
Updated how the system preferences were read.

Before, we had an entry in the preference table in the database that pointed to a preference file generated by ant. This is unnecessary because we built and placed the file ourselves, and it is part of our WAR file. Now, the preference cache simply reads where the root of our system is, adds the location to the preference file, and goes from there.