Add a new mapgen for house (json, standalone file).
* house json created by vache
* this is for vache's request for an example standalone json mapgen, plus
it's a nifty house.
(vache: if you wanna submit in a seperate pr, request this pr get closed:P)
Shave ~1.5 seconds off 'names.json' load time
* Transform > 1 million from-disk seek/gets into from-ram seek/gets
Before
```
14:46:51.353 INFO : src/name.cpp:202: names load (disk->json.cpp)...
14:46:53.21 INFO : src/name.cpp:212: names load done.
14:46:55.553 INFO : src/name.cpp:202: names load (disk->json.cpp)...
14:46:57.333 INFO : src/name.cpp:212: names load done.
14:46:59.631 INFO : src/name.cpp:202: names load (disk->json.cpp)...
14:47:1.642 INFO : src/name.cpp:212: names load done.
```
After
```
14:48:52.115 INFO : src/name.cpp:190: names load (disk->ram->json.cpp)...
14:48:52.492 INFO : src/name.cpp:212: names load done.
14:48:54.884 INFO : src/name.cpp:190: names load (disk->ram->json.cpp)...
14:48:55.261 INFO : src/name.cpp:212: names load done.
14:48:57.741 INFO : src/name.cpp:190: names load (disk->ram->json.cpp)...
14:48:58.118 INFO : src/name.cpp:212: names load done.
```
adv inv: 'M' moves all of a stack
also, enter == 'M'
Fix look around not exiting on ' ' & 'q'
Fire menu: fix pgup/pgdn prev/next target
crafting: tab and pgup/pgdn switch main tabs
Atomic fixes and enhancements!

Merge PRs #5016, #5020, and #5023.
Can has JSON houses. Merge #5014 demo house.