Namespaces

## The Problem

In a real life use case you may want to nest your class inside a module:

```ruby
module SomeApp
  class AddressForm
    include Hatch
  end
end
```

This definition will throw the following error:

```ruby
NameError: wrong constant name InvalidSomeApp::AddressForm
```
The main problem is Hatch does not handle the namespace for its Invalid class very well.

## Pull Request

This pull request fix the namespace problem and improve the tests.

```ruby
SomeApp::AddressForm
SomeApp::AddressForm::InvalidAddressForm 
```