Hierarchical assertions

This is an implementation of issue #2. If you have:

`````
public class ArtWork {...
public class Movie extends ArtWork {...
`````

...and you generate using the hierarchical option, you get the following assertions classes generated:

`````
public abstract class AbstractArtWorkAssert<S extends AbstractArtWorkAssert, T extends ArtWork> extends AbstractAssert<S, T> {...// Contains the actual assertions.
public final class ArtWorkAssert extends AbstractArtWorkAssert<ArtWorkAssert, ArtWork> {... // Contains only constructors.
public abstract class AbstractMovieAssert<S extends AbstractMovieAssert, T extends Movie> extends AbstractArtWorkAssert<S, T> {...// Contains the actual assertions.
public final class MovieAssert extends AbstractMovieAssert<MovieAssert, Movie> {... // Contains only constructors.
`````
I also have a fix for the maven plugin in the works which will allow you to configure which style of assertions you want to generate (non-hierarchical being the default).

Currently only works if all assertions classes are generated at the same time. I have an idea to fix this but thought it was useful enough as-is to incorporate as a feature.