Configuration setup for connecting PostgreSQL
In this change, we have made some configuration work to connect PostgreSQL, and add support for JUnit tests. That includes:
1. Write EGoodsPostgreSQLDialect.java to fix a lacked feature in hibernate. In short, we will leave the id generation logic in a base entity class. That entity class will provide some basic functionalities like equals(), hashCode() etc. But native hibernate does not support this scenario. See comments in that class for more detail.
2. Write persistence.xml. This is per JPA specification. In that configuration, we could specify in which way we will try to persist our entities.
3. Write dal-jpa-context.xml. This is the basic configuration for connecting postgreSQL.
4. Write dal-text-context.xml, which will be used by unit test cases

Overall, the running curve will be:
1. JUnit tests will use @RunWith annotation to invoke SpringJUnit4ClassRunner, with context configuration points to dal-test-context.xml. (Similiar when started in a web container, which uses an application context)
2. dal-test-context.xml will load required Spring configurations and bean definition files. In this changelist, this should be dal-jpa-context.xml, to load configurations for connecting postgreSQL database, via Spring Data JPA.
3. Spring Data JPA will finally utilize hibernate to persist entities.

Build successfully. Write a simple unit test which persists an instance of Category with its corresponding repository.
Following work:
1. Define/Write Category entity and add corresponding unit tests.
2. Add an extra database for unit testing.