Adding lf.schema.Constraint class.

Also moving all lf.schema classes under lib/schema.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=76817173
Generating lf.schema.Table#getConstraint implementation.

Specifically:
- Adding new interface method lf.schema.Table#getConstraint().
- Removing old method lf.schema.Table.getPrimaryKey(), replacing
usages by getConstraint().getPrimaryKey().
- Updating code generator to generate implementations of
getConstraint() for each table.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=76827390
Make sure Journal.commit() is called only once per transaction.
Each transaction shall do backstore flush only once.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=76835840
Fixing verification of SelectProjectMixedColumns test.

It was failing due to a typo when dereferencing the result.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=76839527
Fix SPAC bug of processing nullable.

string columns shall be defaulted to NOT NULL (just as datetime), but they
can be nullable.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=76922798
Implementing primary key constraint during INSERT.

Specifically:
- Modifying Journal#insert() to check whether the inserted rows exist
already.
- Modifying Journal#updateTableIndices_ to call Index#set() instead
of Index#add(), which is necessary to avoid extra bookkeeping in
Journal itself.
- Adding tests to cover various corner cases.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=76922856
Make bundle.sh executable