Started writing isolated unit tests and some refactoring

* Use ActiveSupport Concern

We probably want to make a difference between attributes (from the active_attr gem) and our properties (which maps directly to Neo4j's properties).