Fixed #21231 -- Added mechanism to limit request data upload size.

Added settings.DATA_UPLOAD_MAX_MEMORY_SIZE, similar to the existing
FILE_UPLOAD_MAX_MEMORY_SIZE, and raised SuspiciousOperation on
requests that exceed it.
First of all, I think this should also apply to request.GET, we basically have the same problem there, unless servers severely limit the lengths there (no idea :().

That said, I don't think this protection is enough, eg take this simple example: `dict((i,i) for i in string.ascii_letters)` will consume 3352 on my box already, with raw data in the range of 52*2 bytes + form overhead (granted, the latter is big, but still something to consider). Also, a simple list on my box already takes 80 bytes of memory. Since we are using `MultiValueDict` with lists as items we'd already be at 3352 + 80 * 52 ~ 8000 bytes and that's probably not all of it.

Last but not least, to make this feature generally useable I think we'd need to be able to alter that per view like file uploads allow.