WL#4313: Make max_heap_table_size a limitation with immediate effect

Affects: Server-9.x   —   Status: Un-Assigned   —   Priority: Medium

Currently purpose of max_heap_table_size is not well defined. On the one hand 
it looks like an administrative limitation for heap tables size, on the other 
hand regular users are allowed to change it.

Even more confusion comes from the fact that it gets enforced too tricky:
- when a table is created, truncated or altered;
- when a table is opened for the first time (after server restart).

Following are suggested improvements for max_heap_table_size:
- make it pure administrative limitation, that is only super user is allowed to 
change it;
- make it have an immediate effect;
- if there is a MEMORY table bigger than newly set max_heap_table_size, it must 
be preserved, but writes are disallowed;
- if regular user wants to set max table size, he is allowed to do so by 
passing MAX_ROWS variable to CREATE TABLE (which cannot be bigger than max rows 
calculated basing on max_heap_table_size).