0.20.7: cut the release
Added reports extension v0.3.1 from Sebastian Mogilowski (http://www.mogilowski.net/lang/en-us/projects/racktables/)
Imported api.php from ibettinger/racktables
Forced IP tab to display on objects at all times
syncdomain: use flock, not file existence

There were cases when syncdomain was terminated abnormally, keeping the
lock file existing. After that the syncdomain was not able to resume
until the lockfile was deleted.

This patch uses flock(), adds ability to disable locking logic
(--nolock), and to print significant errors to the STDERR (--stderr) to inform
sysadmin using mail.
shortenIfName: don't lowercase "AC-in" port
SNMP support for Cisco 2960X-24PS-L, 2960X-24PD-L
callScript: export child resourse via global var

The proc_open resulting resource may be needed outside the callScript()
function if a user has signal handlers. E.g., a user may want to limit
the execution time of a gateway scipt using the pcntl_alarm(). In that
case the child process may need to be terminated explicitly using the
$script_child_res global resource.
API to retrieve the newly created entity ID

When you implement a plugin that need to process the newly created
entity (by chaining after the original ophandler), you need to know the
entity id. lastInsertID() is not a choise since there may be multiple
inserts to different tables in the original ophandler.

lastCreated: new function to track or return the last created IDs
getLastCreatedId: wrapper around lastCreated(), filtering the last
created ID of a given realm.

these functions changed to call lastCreated():
	commitAddObject
	commitAddPort
	commitCreateUserAccount
	createIPv4Prefix
	createIPv6Prefix
	addVService
	addVSG
	createVLANDomain
	addRStoRSPool
	commitCreateRSPool
	tableHandler
callScript: wrong exit code bugfix
omit password hash values from HTML

The local user accounts management form used to use password hash value
to indicate that there is no change to the password. Stephan Rickauer
points that exposing the hash value isn't good with the rainbow tables
attack in mind. Use an empty string for that purpose instead.

* renderUserListEditor()
* updateUser()