Refuse attempts to rename '.' and '..' in tmpfs

Check for attempts to rename '.' and '..' in tmpfs_rename(). Introduce a
tmpfs_rename_abort() function and use it for that purpose.
Fix tmpfs_mknod()

Do not call vgone() in tmpfs_mknod() as the call to checkalias() takes
place in tmpfs_alloc_file(). The call to vgone() thus meant the vnode
was inserted in the free list while still on the device's spec hash.
Set vop_islocked for tmpfs device and fifo vnodes

Failure to do so will cause VOP_ISLOCKED() to return EOPNOTSUPP,
leading to diagnostic assertions when trying to rename such vnodes.
Return error in tmpfs_symlink()

The code was mistakenly ignoring the error variable and always returning
success. Oops, my bad.

OK marco@
Check for append-only directories in tmpfs_remove

Attempts to remove a file residing on an append-only directory should
result in EPERM. Check for this condition in tmpfs_remove().
Do not allow removal of '..' in tmpfs_rmdir()

Do not allow the removal of '..' to proceed in tmpfs_rmdir(), returning
ENOTEMPTY as POSIX suggests.
Update ctime on removal of hard links in tmpfs

Check if we removed a hard link in tmpfs_remove() and bump the node's
change time accordingly, as mandated by POSIX.