Revert "Revert "staging: introduce zsmalloc and upstream commits""

This reverts commit 15111a50eff1bcf3b92ebfa6b81d404e92ec7d23.
Revert "staging: zsmalloc: zsmalloc memory allocation library"

This reverts commit 5696792bec03f773e3a63e9dbede5900feb51742.
Revert "staging: zsmalloc: move object/handle masking defines"

This reverts commit ea12644cce386596e58099013c877747f845884a.
Revert "staging: zsmalloc: add ZS_MAX_PAGES_PER_ZSPAGE"

This reverts commit f00a4b61a89c264309ed467a59380fb599936d07.
Revert "staging: zsmalloc: calculate MAX_PHYSMEM_BITS if not defined"

This reverts commit 8f5a491dce4e237871125905b58eab8840720b39.
Revert "staging: zsmalloc: change ZS_MIN_ALLOC_SIZE"

This reverts commit 08b09e786823720191fca20bb8ecf34d68d03e76.
Revert "staging: zsmalloc: fix memory leak"

This reverts commit 72412bdd0c09c32e8c728a6f2560922a2bf50fe5.
Revert "zsmalloc: use PageFlag macro instead of [set|test]_bit"

This reverts commit be8d3f296801b0a998eaf4e7b92ae0570a5aacd5.
Revert "staging: zsmalloc: rename zspage_order with zspage_pages"

This reverts commit baa1984a91552a1b9f718707a96c1f9842b93385.
Revert "staging: zsmalloc: add/fix function comment"

This reverts commit ec4fd68f504e1061d14bd1a1dac2ae872261ccbb.