Implicit table and column names

Often the field name and column name are the same, so it's not needed to define it explicitly. Thats why I changed the argument of the `@Column` and `@DynamicColumn` annotations to be optional. If it isn't set, the SQL column name will be the same as the model's field name.

For the `@Table` annotation I've done the same, so if you don't explicitly define a table name, the class name of the model will be used.

We could also add some (optional) inflection to automatically translate class/field names to table/column names e.g. from *createdAt* to *created_at* (with an interface, so that users could create their own naming strategies, of course). But maybe thats too much magic...