Further improvements

- Prefixed all internal methods with a '_'
- Tidyed up the mixed use of self/this to self everywhere
- Moved all type checks into _check_type
- Don't die/croak on errors => multiple errors can be detected and reported
- The reported errors gives a "stack trace" where the error occured
- Added new method "errors" which returns a list of all errors found
- Added more ways to enter data in "type" method
- Added more test cases:
    * Checks that all failures are detected
    * Checks that the error stack trace is correct
    * More permutations of deeper structures (AoA, AoH, HoH)
Updated build environment
Added .gitignore
Perltidied the code
Bumped version to 0.07_01