dbeusee enhancements/fixes for version 0.04

1.  Fixed getSelectValue usage for correct 2013_2 usage.
2.  Fixed get usage for second arg (changed to accept hash so
you can pass externalId instead if you want, like this:
$ns->get('customer', {externalId => 5678});
3.  Fixed get to copy original record hash since it's copied
during parsing, which prevents calling again with same
hash.
4.  Fixed get: don't die on error - return error instead like all
other routines.
5.  Fixed searchMore to use searchMoreWithId so that it works
now that login/logout are not used.
6.  Fixed searchNext to call searchMore with next page# based
on pageIndex from previous search results.
7.  Fixed delete to accept hash or internal id in case you want
to pass externalId, like get() above.
8.  Fixed add & upsert usage so third arg (recordAttrs) matches
that of the other routines.
9.  Fixed update to add third arg (recordAttrs) like add/upsert.
10. Fixed attach/detach to share the same code.
11. Fixed _parseRequest to try to find a xxxxList field type, as
not all of them have the same name as record element
name without "List".  If we cannot find the field definition,
we fall back in same name as record element without "List".
This fixes error with assigneeList on projectTask record.
12. Fixed _parseRequest to accept scriptId for custom field
reference.
13. Fixed _parseRequest to accept externalId for a recordRef.