Bitwise shift operators as functions?
You can look at how the `bin_and()`, `bin_or()`, and `__xor__()` methods on field/columns are implemented. There are no bitwish shifts at present, but it should be easy to add them for your case. You can do this as a standalone function, e.g.

```python
def lshift(lhs, rhs):
    return Expression(lhs, '<<', rhs)

# Usage.
fn.div(cf, 8).cast('integer') ^ lshift(1, fn.mod(cf, 8).cast('integer'))
```

Minimal example:

```python
class Reg(db.Model):
    value = IntegerField()

db.create_tables([Reg])

def lshift(lhs, rhs):
    return Expression(lhs, '<<', rhs)

for i in range(10):
    Reg.create(value=i)

query = Reg.select(Reg.value, lshift(Reg.value, 2).alias('shifted'))
for row in query:
    print(row.value, row.shifted)

# 0 0
# 1 4
# 2 8
# 3 12
# 4 16
# ...
```
Hi,

I know the Python operators `<<` and `>>` are overloaded in `peewee`. I'm wondering if there is some function (in `peewee.fn`) to use the [bitwise shift left/right operators in Postgresql](https://www.postgresql.org/docs/current/functions-bitstring.html). I've searched a lot but can't find anything myself.

My use case is that I am doing a bitwise OR operation on a byte from a bytearray like this:

```python

class Source(BaseModel):
    carton_flags = BigBitField()

# search by a carton flag `cf`
...
where=(
fn.get_byte(self.carton_flags, fn.div(cf, 8).cast("integer")) ^ (1 << fn.mod(cf, 8).cast("integer"))
)
```

And I'm running into Python errors (`TypeError: unsupported operand type(s) for <<: 'int' and 'Cast'`), which forced me to use some ugly-ass `SQL()` unless I could find the bitwise left/right functions. Right now my workaround solution is to use

```python
where=(fn.get_bit(self.carton_flags, cf) != 0)
```

but I'm wondering if there the bitwise left/right shift functions have been interfaced somewhere.

Thanks
