Some improvements to the repository interface and explanations.

Instead of extending JpaRepository we now extend CrudRepository as
using technology specific interfaces is not recommended in general. E.g.
JpaRepository exposes methods specific to JPA (as the name suggests) and
the purpose of the repository layer is to abstract the persistence
technology of choice.

In the configuration, the JpaTransactionManager doesn't need the
EntityManagerFactory as it will look it up by type anyway. So one less
thing to confuse the users with.

Fixed the description of the configuration class. There's no such thing
as an LocalContainerEntityManagerFactory actually.

Made default constructor in Customer protected to avoid compiler warnings.

Fixed the artifact identifier of the completion project as otherwise you
cannot import both projects into Eclipse as they will end up with the
same project name. Removed obsolete plugin versions for compiler plugin
to prevent Eclipse warnings show up.