If cache is null don't set field, code cleanup

`Reflect.setField(cache,name,v)` would have unspecified behaviour in the case that `cache` is null.  (Please note this was possible before, but had no effect on neko on Neko/PHP).

Other than this, in trying to correctly understand the caching process I did a slight code cleanup:

* Removed `make` and `unmake` methods.  They were presumably left over from a previous non-macro Manager.
* Removed `isBinary()`, it was merely an inline helper for a switch statement, used in a single location, and a switch on the same value followed immediately after.  Now I just use a single switch statement.