Remove deep copy of attribute values

This is not necessary since it merely returns a dict of the attributes.
Add support for backend 'aliases'

An alias uses an existing backend and supplies options that are to be
used when the origin and client are initialized.
Remove check_backend function

This was redundant since the same error would be raised using
import_backend. This try/except catch is more appropriate for a CLI.
Refactor of implementation to remove unnecessary abstraction

The origins.api.Node class has been removed and nodes are now exposed
as is. The abstraction originally was intended to provide a consistent
access layer for traversing nodes, however this has been achieved on the
origins.base.Node.

Conventions have been put in place to standardize the implementation of
backends. The design is still limited in the way nodes are populated with
attributes and how they expose branches and elements. There is quite a bit
of redundancy across nodes since all of the logic for establishing the
attributes have been moved to the client. However, the Origin node must
still synchronize with the client to populate it's attributes which is
confusing.
Implement neo4j exporter in origins.io package

This takes an origin and generates statements to send via the Neo4j
REST API.
Initial client for element search against Neo4j REST API