Change OracleEnhancedOCIConnection#describe logic

Background:

  Some time ago, while running migrations and test schema preparations on one of internal Oracle setups,
    job wallclock times increased dramatically (in order of 10x). After some investigation it became
    apparent that problem was in OracleEnhancedSchemaStatements::create_table method - it took 40+ seconds to
    execute OracleEnhancedAdapter::table_exists? which itself is wrapper for OracleEnhancedOCIConnection::describe
    Though most probably, the time increase isn't directly related to ruby-oci8 or oracle-enhanced, as same problem
    was replicated in SQL Developer (which internally also translates 'DESC[RIBE]' to UNIONed SELECT), and is due
    to DB configuration/patches/size increases, current gem code can be improved a bit/this provides solution for
    this isolated performance drop.

Proposal:

  When using OCI8 interface and calling #describe on non-existant table (as is probably the most frequent case in
    test DB preparations and migrations), oracle-enhanced should not retry describe via SELECT-based `super` when no db link
    is specified and OCIException code is 4043 (object does not exist)

Signed-off-by: Aleksandrs Ļedovskis <aleksandrs@ledovskis.lv>
Merge pull request #375 from aledovsky/bug/oci8_describe_non_existant

Change OracleEnhancedOCIConnection#describe logic
Support `remove_columns`

`def remove_columns(table_name, *column_names)` is defined
in ActiveRecord::ConnectionAdapters::SchemaStatements, which does not
require Oracle enhanced specific implementation.

`def remove_column(table_name, column_name, type = nil, options = {})`
ignores `type` and `options` arguments to avoid ORA-00904 errors

See rails/rails#8267 for Rails change.
This commit should not backport into release14 branch.
Merge pull request #377 from yahonda/support_remove_columns

Support `remove_columns`
Order view output alphabetically
Add `FORCE` option at `CREATE OR REPLACE VIEW` in structure_dump_db_stored_code
because it is quite difficult to dump views to satisfy dependencies.

Views created with FORCE option may be invalid,
which should be implicitly recompiled at the first time they are used.
Merge pull request #378 from yahonda/pr372_sandbox

Dump views output alphabetically and FORCE option
Update History.md for 1.5.1
Merge pull request #380 from yahonda/prepare_relese151

Update History.md for 1.5.1
Release 1.5.1
Move `SchemaCreation` to its own file
Merge pull request #381 from yahonda/support_schemacreation_class

Move `SchemaCreation` to its own file
Remove OracleEnhancedColumnDefinition
Merge pull request #382 from yahonda/remove_unused_code_in_schema_definitions

Remove OracleEnhancedColumnDefinition
Don't replace text with empty_clob() when quoting if the value is not empty
Move add_column_options! into SchemaCreation class
Add options_include_default!
Merge pull request #384 from yahonda/address_test_create_table_with_defaults

Address test create table with defaults
Log bind variables after they were type casted
Merge pull request #385 from yahonda/log_bind_variables_after_type_casted

Log bind variables after they were type casted