Allow transient values to be stored in storage

Instead of requiring all values to be saved to storage
in a persistent manner allow certain values to be saved
in memory only (aka transient values) so that tasks can
accept things which should not be persisted (resources,
passwords, file handles, sockets...)

Breaking change: disallowing empty names for atom details
when they are ensured for (previously this was not done
at the storage level) but at the execution level. This
adds it in both places.

Change-Id: Ie68abdcf94f33fba5dbc05f03397aea5d82ea88f
Merge "Allow transient values to be stored in storage"