Updated regular expression validation to use '+' instead of '*'.

- This will ensure 1 or more instead of 0 or more characters.
Refactored .find_by_identifier to use .find_by instead .where.
Refactored string (clone) to token.

- Improves readablity when understanding the original string and
  cloned token being manipulated.
Added support for finding with custom primary key.

- Previously find_with_token only accepted a boolean. Now it can
  accept a custom primary key other than "id".
- In order to support backwards compatibility, find_with_token=true
  will default to "id".
- You can supply a custom primary key via find_with_token. Example:
  find_with_token="uuid".
Added blacklist support.

- Any token matched in the blacklist will be marked as invalid.