CAS-1360: Implementation of the REST API with Spring @RestController

This pull request adds a new extension module that implements CAS REST API with modern Spring @RestController programming model. This new module could be used to effectively replace the older restlet module that implements this REST API.

For deployments that do not use restlet module, the enablement of the REST support is as easy as including this dependency in the overlay's pom:

```xml
<dependency>
            <groupId>org.jasig.cas</groupId>
            <artifactId>cas-server-extension-rest</artifactId>
            <version>${cas.version}</version>
            <scope>runtime</scope>
</dependency>
```

For users of restlet module, just replace the pom dependency and change this snippet in web.xml:

from this:

```xml
<servlet>
    <servlet-name>restlet</servlet-name>
    <servlet-class>org.restlet.ext.spring.RestletFrameworkServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
 
<servlet-mapping>
    <servlet-name>restlet</servlet-name>
    <url-pattern>/v1/*</url-pattern>
</servlet-mapping>
```

to this:

```xml
    <servlet-mapping>
        <servlet-name>cas</servlet-name>
        <url-pattern>/v1/*</url-pattern>
    </servlet-mapping>
```

or delete the web.xml in the overlay altogether if there are no other customizations there as this mapping is provided by CAS' webapp module's web.xml out of the box. 
Scott wanted a protected method for creating credential instance out of the raw entity representation for potential overriding opportunity in subclasses—
Sent from Mailbox

On Wed, Jul 9, 2014 at 8:45 AM, LELEU Jérôme <notifications@github.com>
wrote:

>> + * Even though the default URI for tickets resource is {@code /v1/tickets}
>> + * it could be re-configured to whatever URI is desired by setting the following properties
>> + * in either classpath-based or externalized cas.properties file:
>> + *
>> + * <ul>
>> + *     <li>{@code server.rest.prefix=/v1}</li>
>> + *     <li>{@code server.rest.ticketsResource.name=tickets}</li>
>> + * </ul>
>> + *
>> + * @author Dmitriy Kopylenko
>> + * @author Unicon inc.
>> + *
>> + * @since 4.1
>> + */
>> +@RestController("${server.rest.prefix}:/v1")
>> +public class TicketsResource {
> Do we want to make this ```TicketsResource``` class ```final``` or do we want to "open" it to changes?
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/Jasig/cas/pull/451/files#r14707070