Changed ItemList to be cropabble and have flexible size.

ItemList now inherits from Croppable class instead of Drawable, which means ItemList can now be cropped using the setRegion() function. Instantiating ItemList with 0 or negative window size will now create a list with flexible height. This kind of flexible list will dynamically adjust its height based on the content size. Because of that, flexible list will NOT scroll.