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. 
This is the "check style torture" mechanism that is used throughout CAS in all the other modules. Without it it wouldn't build. I did not invent it, trust me :-)) —
Sent from Mailbox

On Tue, Jul 8, 2014 at 10:20 PM, Scott <notifications@github.com> wrote:

>> +	<modelVersion>4.0.0</modelVersion>
>> +	<groupId>org.jasig.cas</groupId>
>> +	<artifactId>cas-server-extension-rest</artifactId>
>> +	<packaging>jar</packaging>
>> +	<name>Jasig CAS REST implementation</name>
>> +	
>> +	<dependencies>
>> +		<dependency>
>> +			<groupId>org.jasig.cas</groupId>
>> +			<artifactId>cas-server-core</artifactId>
>> +			<version>${project.version}</version>
>> +		</dependency>
>> +	</dependencies>
>> +
>> +    <properties>
>> +        <cs.dir>${project.parent.basedir}</cs.dir>
> what is cs.dir being used for?
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/Jasig/cas/pull/451/files#r14690980