Merge pull request #58 from emmjaykay/api-overhaul

Api overhaul
first stab at new api
added missing files
weird compilation errors with enums
HUGE deletion and rearchitecting of interfaces
more stable (aka non destructive reshaping) element wise operations
fix compilation errors
re add models
added models
some merges