added isAvailableReason to return a string indicating why a block is not available. Used for testing. Restored isAvailable to just returning bit values.