snmp: detectSoftwareType handles VRP 8.x
Add getportmaclist device operation

changed:
ios12TranslatePushQueue: new getportmaclist operation case
vrp53TranslatePushQueue: idem
vrp55TranslatePushQueue: idem
vrp85TranslatePushQueue: idem
ftos8TranslatePushQueue: idem
eos4TranslatePushQueue: idem
ros11TranslatePushQueue: idem
dlinkTranslatePushQueue: idem
linuxTranslatePushQueue: idem

remote.php: new $breedfunc keys {breed}-getportmaclist-main
for breeds ios12, vrp53, vrp55, vrp85, nxos4, dlink, linux, ftos8, eos4, ros11
new per-port mac list popup menu item

Add AJAX handler 'get-port-portmac' for requested port

changed:
formatPortMacHints: now can query device with getportmaclist operation for specified port
getPortInfoAJAX: new key 'get-port-portmac' in $funcmap and $opmap
switchportInfoJS: new key 'portmac' in $available_ops
navigation.php: new ajaxhandler 'get-port-portmac'
queryDevice: new function argument $args. Calls translateDeviceCommands with given args
portinfo.js:
  new menuitem 'Show port learned MACs' in menu_item_candidates
  menuItemClicked: new request data param 'port_name'
  applyMacData: Change popup-box dynamic block if it exists instead of just adding it

Conflicts:
	ChangeLog
fetchAttrsForObjects: fix SQL using temp table

Since fetchAttrsForObjects() is called on every listCells('object') call,
there was significant performance problem due to creation of huge temptable
and filesorting it. Sorted attr value list is needed rarely and always for
a single object, so new function getAttrValuesSorted() deals with this task now.

fetchAttrsForObjects: remove ORDER BY statement.

These funcs switched from getAttrValues() to getAttrValuesSorted():
  renderRow, renderEditRowForm, renderEditObjectForm, renderEditRackForm,
  renderRackInfoPortlet, renderObject, renderLocationPage, renderEditLocationForm.