Add JSON versioning capability

This PR add JSON versioning capability to VRaptor4.
One of the most strategies used for API versioning is through URI. 
With this PR, one can do API versioning allowing the controller to build a result based on URI parameter. 

A sample example of usage follows:
```java
@Get("/example/{version}")
public void example(String version) {
	Object response = new Object();
	result.use(Results.json()).version(version).from(response).serialize();
}
```

@adolfoweloy @andrelrs 
@garcia-jj , we need the usage of ExclusionStrategy because of recursive JSON serialization.
When we serialize an object which has aggregation, we need to do something like this to serialize the whole object:

```java
result.use(Results.json()).version(version).from(response).recursive().serialize();
```
But when recursive method is used, we need to serialize only @Since annotated fields. 

```java
@Test
public void shouldSerializeRecursivelyVersionedJsonFieldsWithSinceAnnotationOnly() {
	ExclusionStrategy strategy = new SinceExclusionStrategy();
	JSONSerialization serialization = new GsonJSONSerialization(response, extractor, builder, environment);

	String expectedResult = "{\"client\":{\"name\":\"adolfo eloy\",\"address\":{\"street\":\"antonio agu\"}}}";

	Client client = new Client("adolfo eloy", new Address("antonio agu", "osasco"));
	serialization.version(1.0).setExclusionStrategies(strategy).from(client).recursive().serialize();
	assertThat(result(), is(equalTo(expectedResult)));
}
```