Removed some unused variables that were causing compiler warnings
Added isWritable() method to base Variable class to allow code to distinguish at run time between writable and non-writable (e.g. expression, selection) variables.  Assignment action factory now checks if the target is writable and throws an error if it isn't.