Merge pull request #4 from fge/master

Create an enum for simple type mappings for JsonSchema
rename the bind method
improve the class responsibility concerns
the JsonSchema now hold only attributes around schema. The generator does the hard work.
HUGE CHANGES!

All the JsonSchema classes were re-designed. Now we have a different
generation schema. It was implemented the Strategy Pattern for building
the JsonSchemas. JsonSchemaGenerator is the interface for the strategy
and JsonSchemaGeneratorV4 is the implementation of it. The class Schema
is the AbstractFactory for creating JsonSchemas.
Changed the Media type to string instead of object
Added support to Nullable annotation

Now the type property can be a string or an array
Update README.md
using prettyprinting
changed package name and pattern strategy

the packge name is according to the github uri now.
note that i've changed my user name from daniloreinert to reinert only.
also i've changed the strategy pattern to tempate method.
it allows reuse a lot of common methods and it's more apropriated for
the complexty of the algorithm creation.
finished refactoring to template method

now you just need to implement three methods to create a differente
JsonSchemaGenerator:
- AbstractJsonSchema createInstance()
- AbstractJsonSchema mergeSchema(AbstractJsonSchema parent,
AbstractJsonSchema child, boolean forceOverride)
- void bind(AbstractJsonSchema schema, SchemaProperty props)
reorganizing some things
updating the pom
updating somethings
Added new Generator using JsonNode representation

Implemented a new generator using JsonNode (from Jackson) to represent
the JsonSchema object, instead of the JsonSchema POJO previously
designed.
changes regarding Collections

I tried to create a Collection Map of all existing implementations of
Collection, but I figured out that it would be too hard, considering
others implementations like Google Collections. My itention is to
distinguish between Collection implementions and Collection wrappers
(used to build cusotmized array schemas). So I decided that any class
that implements AbstractCollection is an Collection Implementation,
otherwise (if only implements Collection or Iterable) is an Collection
Wrapper.
adequated tests
full support to hyperschema

implemented the HyperScheema generation using JsonNode representtion
organizing the project

The deprecated classes are at the deprecated package. I've decide to
maintain these classes for consulting.
Update README.md
Update README.md