Fixed a bug that resulted in `any` being inferred for nested recursive generics.
Formatted type declaration on multiple lines for readability.
Updated maintainers list.
Updated the declaration to take advantage of Mapped Types. Specifically, I added a `DeepReadonly` recursive generic mapped type.
Additionally, I took the opportunity to add overloads that mirroring those of `Object.freeze` as specified in the latest `lib.d.ts`.
I removed the interface as it is now unused.