TST: add tests for take() on empty arrays
Another noticed during geopandas testing: `ExtensionArray.take` needs to be able to handle the case where it is empty.

Added a example implementation for Decimal/JSONArray. 
And apparently, this was also failing for Categorical, so fixed that as well.

