Interface fails with empty object

        interface will always fail with empty object now.
    this may be an issue with a "blank" interface, but
    cannot see where that would be used.
set and get closures moved from for loop

        removed the set and get closures outside the for loop
    for optimization purposes. this will make adding properties
    to the model after instantation easier
copy function created

        copy creates copy of object and uses recursion on
    sub objects/arrays/dates within objects/arrays
added debug info for Model constructor

        console logs out the data that failed interface check before
        throwing error, helpful for debugging. TODO: create internal
        log function
get method on model returns copy

        noticed a bug where if you set a models json to another
    variable and then modified that, you would modify the model
    without triggering any of the fail safes. all gets on model
    now return copies rather than references.
Collection json uses native map method
missing semicolon