style(Adapter): cleanup redundant method declaration

Remove methods already defined in interface
refactor(Adapter): remove getName() from BaseAdapter

Each adapter must return a unique name so defaulting
doesn't make sense then
refactor(Adapter): a detailed API for adapters

All the methods of the adapter interface describe
what is explicitly required to be returned by an implementation

Use exception instead of returning false
Using exceptions allows for more detailed errors
Merge pull request #168 from sstok/adapter-stablizing

Adapter stablizing