Unified common classes and interfaces. Closes #1, closes #3.

* Add root class JCaching.
* Add factory class for backend implementations.
* Change position for SocketMemoryBackend root class implementation.
* Add factory class for protocol implementations.
* Add Apache CommonsConfiguration library to handle properties parametrization.
* Add Apache CommonsLang library.
* Change CacheDeamon from static methods to instance methods.
* Change test unit implementation for SocketMemoryBackend to instantiate a threaded server only once.
* Add default properties configuration file.
* Change example to use the library more verbosely.
* Add javadoc comments + TODO entries.
* Add diagrams in /docs + class diagram image.

^ Ese es el changelog a grandes rasgos. Hice muchas modificaciones para adaptar lo que había a lo que habíamos hablado el miércoles pasado. Les pido disculpas desde ya por demorarme tanto y por meterles quilombo si habían avanzado, en serio... puteenmé, no hay drama. Estaría copado si todos les pueden pegar una ojeada y me/nos digan qué les parece, si lo encaré bien, si no entienden algo o me quedó algo por afuera.

El proyecto tiene una clase root por donde se hace la instanciación y la carga de la configuración de manera bastante fácil (IMHO); [pueden verlo en el ejemplo](https://github.com/jmg/jcaching/blob/common-interfaces/src/main/java/org/jcaching/examples/Simple.java#L21-L50).

Agregué CommonsConfiguration de Apache para hacer la carga de configuración a través del archivo de configuración [jcaching.properties](https://github.com/jmg/jcaching/blob/common-interfaces/src/main/resources/jcaching.properties), para eso tuve que modificar bastante las clases que ya estaban usando algo de configuración.

Cada backend debería tener su propio package; traten por favor de agrupar todo para que todo lo involucrado con el backend que les tocó [penda de una rama](https://github.com/jmg/jcaching/tree/common-interfaces/src/main/java/org/jcaching/backends/impl/socketmemorybackend).

Ahora existe la case [BaseCacheBackend](https://github.com/jmg/jcaching/blob/common-interfaces/src/main/java/org/jcaching/backends/impl/BaseCacheBackend.java) que implementa lo mínimo requerido por los futuros backends, así que tengan en cuenta de modificar lo que ya tengan para extenderlo si habían avanzado (perdón :P). Pueden ver cómo hacerlo en la implementación de [SocketMemoryBackend](https://github.com/jmg/jcaching/blob/common-interfaces/src/main/java/org/jcaching/backends/impl/socketmemorybackend/SocketMemoryBackend.java).

Si jodí a alguien de verdad que fue sin mala leche.
Abrazo.