SignalDict can set readonly items

It came up in #85 that some backends (e.g. nengo_ocl) make the
SignalDict available, but the ndarrays are not actually
modifiable despite seeming that way.
This makes it possible to init signals with readonly ndarrays.
Their readonly status is tracked and ensured by the SignalDict.

Other changes
- Changed all key, value names to sig, ndarray to make the
  SignalDict easier to read/understand
- Added tests to ensure readonly status

Addresses #85.