Try memoizing Interface.interface_ports() with an LFU cache.
Merge branch 'port_ids' of https://github.com/neurokernel/neurokernel

pulled performance changes again
Added parameters and comments in photoreceptor, cached more functions in pattern, changed some simulations