DDL for check constraint.

DDL for check constraint.

Hi.

This is to create DDL for Check Constraint.
This feature creates ALTER TABLE DDL instead of CREATE TABLE DDL.
Use this feature like below.
```
  class Categories(tag: Tag) extends Table[(Int, String)](tag, "cat_checkconstraint") {
    def id = column[Int]("id")

    def name = column[String]("name")

    def checkConstraintOne = checkConstraint("chk_1", (t: Categories) => (t.id < 10))

    def checkConstraintTwo = checkConstraint("chk_2", (t: Categories) => (t.name.like("%10%")))

    def checkConstraintThree = checkConstraint("chk_3", (t: Categories) => (t.id < 20 && t.name.like("%100%")))

    def * = (id, name)
  }
```
Note that you should use like this
```
  (t: Categories) => (t.id < 10)
```
You should specify valid type explicitly. I can't find a workaround for this.

For now(20140612), In MySQL5.5, The supporting for check constraint is just fake.
And, In SQLite3.7, I can't find valid syntax for "alter table".
If you know "working" syntax, please tell me.
So, In these cases, this feature doesn't work and doesn't create any DDL about check constraint.
And, related test doesn't work for these case. It just ignores these DBMS.

This feature was copied from Query.filter almost,
And, uses JdbcStatementBuilderComponent.buildWhereClause heavily.

Thanks.
What's the use case for CheckConstraintQuery? I don't see it used in the tests. If the only purpose of a constraint is to have the DB enforce it behind the scenes, we should rather have a def that you can override to add your constraints, than the reflective discovery of individual methods. We use that for foreign keys because the foreign key queries are actually useful. I just realized we also use the same mechanism for `index` where it seems just as useless as here. Indexes should probably be done the same way a constraints.