Resolves issue #66

- Re-worked the __init__() method on all classes
- Improved handling of layout data storage within classes
- Added check for same-name layouts with option to cancel or override