Implementada parte servidor búsqueda sin categoría

Se ha reestructurado el sistema de paquetes para tener todo más ordenado, ahora
todo lo relativo a artículos estará en subpaquetes "articles" dentro de cada
paquete previamente existente, así cuando existan más entidades, daos y
"vistas" REST, no estarán todas desperdigadas en un mismo paquete (eg: todos
los tipos de usuarios y todos los tipos de articulos dentro de "*.entities").
Del mismo modo, también han sido modificadas las rutas de la api REST para que
todos los recursos de tipo artículo cuelguen de "/articles", así, por ejemplo,
para realizar una búsqueda sin tipo será "/rest/articles?search=mibusqueda",
mientras que para realizar una busqueda de libros será
"/rest/articles/books?search=mibusqueda". Las rutas ya configuradas en Angular
(lógica de interfaz) han sido corregidas a tal efecto.

Se han refactorizado las entidades, DAOs y clases REST para permitir la
búsqueda general de todo tipo de artículos sin especificar una categoría. Tanto
ArticleDAO como ArticleResource han sido renombrados a GenericArticleDAO y
GenericArticleResource, y se han creado clases concretas ArticleDAO y
ArticleResource que extienden de éstas y bloquean la inserción de artículos,
dado que para ello deberían utilizarse los subtipos de Article y sus
respectivos DAOs y Resources.

Se ha mantenido Article como una clase abstracta, para evitar la creación de
objetos Article que no tienen sentido dentro de la lógica de la aplicación,
dado que todo artículo pertenece siempre a uno de sus subtipos. El problema que
presenta ésto es la respuesta de un listado de artículos, sin haber
especificado tipo concreto, por parte del servidor, debido a que Jackson no es
capaz de serializar a JSON una clase abstracta (y el tipo definido en
ArticleResource como parámetro para GenericArticleResource es Article, por lo
que debe devolver artículos de cualquier tipo!). La solución más sencilla
(aunque un poco fea[1]) para ésto es el uso de las anotaciones que Jackson
proporciona para estos casos: @JsonTypeInfo y @JsonSubTypes (ver en
"*.entities.articles.Article").

Éstas anotaciones, además, nos solucionan la parte de servidor de la historia
"Usuario Ver Categoría", de modo que añaden a la respuesta JSON el tipo de
artículo que recibe el cliente (Angular) en cada objeto, ejemplo de respuesta a
una búsqueda:

    [ { type: "book",  id: 1, name: "asd",    ... },
      { type: "movie", id: 2, name: "qwerty", ... },
      ... ]

Así, directamente se puede procesar el atributo "type" en la respuesta JSON
para determinar a qué tipo de artículo se refiere cada uno cuando no se conozca
previamente (eg: se ha buscado sin filtrar por categoría).

[1] La fealdad reside en la necesidad de declarar todos los subtipos de Article
en la anotación @JsonSubTypes. Existe otra solución consistente en programar un
mapeador propio y registrarlo en la configuración de Jackson, no la he
explorado mucho, porque parece añadir un nivel de complicación innecesario para
éste proyecto. De todos modos, seguramente existe la posibilidad de trasladar
dichas anotaciones feas a un fichero properties/XML y evitar tener que añadir
manualmente cada subtipo en Article.java cuando se creen más, no he
investigado, pero sería lo más limpio si así fuese.
Integrados cambios de Iago y míos en la rama development

Conflicts:
	src/main/java/es/uvigo/esei/daa/tarde/daos/BookDAO.java
	src/main/java/es/uvigo/esei/daa/tarde/daos/ComicDAO.java
	src/main/java/es/uvigo/esei/daa/tarde/daos/MovieDAO.java
	src/main/java/es/uvigo/esei/daa/tarde/daos/MusicStorageDAO.java
	src/main/java/es/uvigo/esei/daa/tarde/daos/articles/GenericArticleDAO.java
	src/main/java/es/uvigo/esei/daa/tarde/entities/articles/Article.java
	src/main/java/es/uvigo/esei/daa/tarde/rest/ArticleResource.java
	src/main/java/es/uvigo/esei/daa/tarde/rest/articles/BookResource.java
	src/main/java/es/uvigo/esei/daa/tarde/rest/articles/ComicResource.java
	src/main/java/es/uvigo/esei/daa/tarde/rest/articles/MovieResource.java
	src/main/java/es/uvigo/esei/daa/tarde/rest/articles/MusicStorageResource.java
	src/test/java/es/uvigo/esei/daa/tarde/rest/articles/ArticleBaseResourceTest.java
	src/test/java/es/uvigo/esei/daa/tarde/rest/articles/BookResourceTest.java
	src/test/java/es/uvigo/esei/daa/tarde/rest/articles/ComicResourceTest.java
	src/test/java/es/uvigo/esei/daa/tarde/rest/articles/MovieResourceTest.java
	src/test/java/es/uvigo/esei/daa/tarde/rest/articles/MusicStorageResourceTest.java